編譯器錯誤 CS1919
更新:2007 年 11 月
錯誤訊息
建立物件時不能使用 Unsafe 型別 'type name'。
new 運算子只會在 Managed 堆積 (Heap) 上建立物件。然而,您可以使用語言的互通性 (Iinteroperability) 功能來呼叫會傳回指標的原生方法,間接在 Unmanaged 記憶體中建立物件。
若要更正這個錯誤
在新的物件建立運算式中使用安全型別。例如,使用 char 或 int,而不要使用 char* 或 int*。
如果必須在 Unmanaged 記憶體中建立物件,請使用 Win32 或 COM 方法,或是以 C 或 C++ 撰寫自己的函式,並從 C# 中呼叫該函式。
範例
因為指標型別 (Pointer Type) 是不安全的,所以下列範例會產生 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;
}
}