编译器错误 CS0208
无法获取托管类型(“类型”)的地址和大小,也无法声明指向它的指针
即使使用 unsafe 关键字,也不允许获取托管对象的地址和大小或声明指向托管类型的指针。 托管类型是:
任何引用类型
包含作为字段或属性的引用类型的任何结构
有关详细信息,请参阅非托管类型。
下面的示例生成 CS0208:
// CS0208.cs
// compile with: /unsafe
class myClass
{
public int a = 98;
}
struct myProblemStruct
{
string s;
float f;
}
struct myGoodStruct
{
int i;
float f;
}
public class MyClass
{
unsafe public static void Main()
{
// myClass is a class, a managed type.
myClass s = new myClass();
myClass* s2 = &s; // CS0208
// The struct contains a string, a managed type.
int i = sizeof(myProblemStruct); //CS0208
// The struct contains only value types.
i = sizeof(myGoodStruct); //OK
}
}