我习惯了 C 和指针的使用。我知道你可以用 C# 中的指针做很多事情,但是垃圾收集越来越烦人。是否可以创建指向对象的指针,并以某种方式将指针链接到对象,这样只要指针还活着,对象就不会被清理?有什么谎言
unsafe void* Function1 () {
SomeStruct s = new SomeStruct();
void* ptr = (void*) &s;
return ptr;
}
main() {
void* p = Function1();
p->field = 3;
}
当我尝试这样做时,对象很好,并且指针在 Function1 中工作,但是一旦函数退出,尽管指针有效,对象就被销毁了。就垃圾收集器而言,如果有某种方法可以将两者联系起来,那就太棒了。