Compiler Error CS0413
TOC
Inhaltsverzeichnis reduzieren
Inhaltsverzeichnis erweitern
Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Compiler Error CS0413

 

Veröffentlicht: Juli 2016

Der "Typparameter"-Typparameter kann nicht mit dem Operator "as" verwendet werden, da er nicht über eine Einschränkung für einen Klassentyp oder über eine class-Einschränkung verfügt.

Dieser Fehler tritt auf, wenn ein generischer Typ den Operator as verwendet, der generische Typ jedoch keine Klassentypeinschränkung aufweist. Der Operator as ist nur bei Referenztypen zulässig. Daher muss der Typparameter eingeschränkt werden, damit gewährleistet ist, dass es sich nicht um einen Werttyp handelt. Um diesen Fehler zu vermeiden, verwenden Sie eine Klassentypeinschränkung oder eine Referenztypeinschränkung.

Das ist erforderlich, weil der Operator asnull zurückgegeben kann. Dieser Wert ist jedoch für einen Werttyp nicht zulässig. Der Typparameter muss als Werttyp behandelt werden, es sei denn, es handelt sich um eine Klassentypeinschränkung oder eine Referenztypeinschränkung.

Beispiel

Im folgenden Beispiel wird CS0413 generiert.

// CS0413.cs
// compile with: /target:library
class A {}
class B : A {}

class CMain
{
   A a = null;
   public void G<T>()
   {
      a = new A();
      System.Console.WriteLine (a as T);  // CS0413
   }

   // OK
   public void H<T>() where T : A
   {
      a = new A();
      System.Console.WriteLine (a as T);
   }
}
Anzeigen:
© 2016 Microsoft