Compilerfehler CS1919

Der unsichere Typ „Typname“ darf bei der Objekterstellung nicht verwendet werden.

Der new-Operator erstellt Objekte nur auf dem verwalteten Heap. Allerdings können Sie indirekt Objekte in nicht verwaltetem Speicher erstellen, indem Sie die Interoperabilitätsmöglichkeiten der Sprache verwenden, um native Methoden aufzurufen, die Zeiger zurückgeben.

So beheben Sie diesen Fehler

  1. Verwenden Sie einen sicheren Typ im neuen Objekterstellungsausdruck. Verwenden Sie z.B. char oder int anstelle von char* oder int*.

  2. Wenn Sie Objekte in nicht verwaltetem Speicher erstellen müssen, verwenden Sie eine Win32- oder COM-Methode, oder schreiben Sie Ihre eigene Funktion in C oder C++, und rufen Sie sie aus C# auf.

Beispiel

Im folgenden Beispiel wird CS1919 generiert, da ein Zeigertyp nicht sicher ist:

// cs1919.cs  
// Compile with: /unsafe  
unsafe public class C  
{  
    public static int Main()  
    {  
        var col1 = new int* { }; // CS1919  
        var col2 = new char* { }; // CS1919  
        return 1;  
    }  
}  

Siehe auch

Interoperabilität