更新:2007 年 11 月

错误消息

创建对象时不能使用不安全的类型“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# 编程指南)