C#声明类成员变量本身的类型指针

C#声明类成员变量本身的类型指针,c#,C#,我用C写了一个链表来学习# 但是,为什么这段代码会出现错误 class testClass{ testClass* pointerValue; } 错误代码: 无法获取的地址、大小或声明指向的指针 托管类型('testClass') 我不知道为什么会发生这种错误。“帮助我”因为testClass已声明为class(而不是struct),它是一种引用类型,您不需要任何显式的不安全指针: 为什么要使用不安全的指针class testClass{testClass pointerValue;

我用C写了一个链表来学习#

但是,为什么这段代码会出现错误

class testClass{
    testClass* pointerValue;
}
错误代码:

无法获取的地址、大小或声明指向的指针 托管类型('testClass')


我不知道为什么会发生这种错误。“帮助我”

因为
testClass
已声明为
class
(而不是
struct
),它是一种引用类型,您不需要任何显式的不安全指针:


为什么要使用不安全的指针
class testClass{testClass pointerValue;}
没有任何指针,因为这是一个指针,但却是一个隐藏指针。错误是,他想要得到大小。所以编译器想知道指针应该有多大?比如他必须分配什么地址空间?@Morta:“…或者声明一个指向托管类型testClass的指针”ou。。。。我的主要语言是C++。有些东西模棱两可。在C++中指针类型总是4字节。但是,你们说‘C#必须知道指针指向内存的大小’,对吗?@naiad:
testClass
是一个托管类(例如,它可以由垃圾收集器收集,可以在内存中移动),这就是为什么我们不能通过不安全的指针(实际上只是地址)来寻址此类对象。但是你可以,比如说,把
放在不安全的地方{inti=123;int*p=&i;…}
class testClass { 
  // reference to testClass instance or null
  testClass pointerValue; 
}