C# struct:无法修改“...”的返回值,因为它不是变量原因

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/u014732824/article/details/98856784

出现这个原因是值类型默认是按值传递的,返回的是栈上的一份临时的、本地的拷贝的值

因此即使能对它进行修改也无法反映到原来的值本身上,这是一个毫无何意义的操作,因此编译器就从源头上禁止了这样的操作。

解决办法:

1.改成class引用类型,这样,就成了一个对象(引用类型),就会返回在堆上的实际地址,修改也会反映到实际的对象 

2.设置一个中间临时变量,然后再替换整个原来的struct值。这样实际上是替换整个struct。

猜你喜欢

转载自blog.csdn.net/u014732824/article/details/98856784
今日推荐