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
Verwenden Sie einen sicheren Typ im neuen Objekterstellungsausdruck. Verwenden Sie z.B.
char
oderint
anstelle vonchar*
oderint*
.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;
}
}