为什么C#结构不能返回对其成员字段的引用?结构Foo{inti;publicrefintI=>refi;这段代码抛出编译错误CS8170,但如果Foo是一个类则不会。为什么结构不能返回成员作为引用?我想我找到了解决方案:classProgram{staticvoidMain(string[]args){Footemp=newFoo(99);Console.WriteLine($"{Marshal.ReadInt32(temp.I)}");控制台.ReadLine();}}结构Foo{inti;公共IntPtrI;publicFoo(intnewInt){i=newInt;我=GetByRef(i);}staticunsafeprivateIntPtrGetByRef(intmyI){TypedReferencetr=__makeref(myI);int*temp=&myI;IntPtrptr=(IntPtr)temp;返回指针;这不是一个好主意——太多可怕的警告。但是,我确实认为它通过返回对struct成员的引用来完成您想要的操作,然后您可以对其进行编组以获取原始值。以上是C#学习教程:为什么C#结构体不能返回其成员字段的引用?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
