(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Compilerfehler CS0413

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.

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);
   }
}

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft