更新:2007 年 11 月
错误消息
创建对象时不能使用不安全的类型“type name”。new 运算符仅在托管堆上创建对象。但可以通过使用语言的互操作功能调用返回指针的本机方法,间接地在非托管内存中创建对象。
更正此错误
在新的对象创建表达式中使用安全类型。例如,使用 char 或 int,而不是使用 char* 或 int*。
如果必须在非托管内存中创建对象,请使用 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; } } |