使用英语阅读

通过


编译器错误 CS1919

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

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

更正此错误

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

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

示例

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

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

另请参阅