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

Compilerfehler CS0310

Der Typ "Typname" muss ein abstrakter Typ mit einem öffentlichen parameterlosen Konstruktor sein, um im generischen Typ oder der generischen Methode "Generikum" als Parameter "Parameter" verwendet werden zu können.

Der generische Typ bzw. die generische Methode definiert eine neue Einschränkung in der where-Klausel. Daher muss jeder Typ einen öffentlichen, parameterlosen Konstruktor besitzen, damit er als Typargument für diesen generischen Typ oder die generische Methode verwendet werden kann. Stellen Sie zur Vermeidung dieses Fehlers sicher, dass der Typ den korrekten Konstruktor aufweist, oder ändern Sie die Einschränkungsklausel des generischen Typs bzw. der generischen Methode.

Im folgenden Beispiel wird CS0310 generiert:

// CS0310.cs
using System;

class G<T> where T : new()
{
    T t;

    public G()
    {
        t = new T();
        Console.WriteLine(t);
    }
}

class B
{
    private B() { }
    // Try this instead:
    // public B() { }
}

class CMain
{
    public static void Main()
    {
        G<B> g = new G<B>();   // CS0310
        Console.WriteLine(g.ToString());
    }
}

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft