Compiler Error CS1919

创建对象时不能使用不安全的类型“type name”。

new 运算符仅在托管堆上创建对象。但可以通过使用语言的互操作功能调用返回指针的本机方法,间接地在非托管内存中创建对象。

更正此错误

  1. 在新的对象创建表达式中使用安全类型。例如,使用 charint,而不是使用 char*int*

  2. 如果必须在非托管内存中创建对象,请使用 Win32 或 COM 方法,或者用 C 或 C++ 编写自己的函数并从 C# 调用该函数。

下面的示例生成 CS1919,因为指针类型是不安全的:

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

请参阅

互操作性(C# 编程指南)