C#中级编程网盘 视频226练习题20-23一节中第22题
视频中说C#中结构体赋值是按值赋值的,但结构体 Student 中包含String 类型变量name,那String本身是引用类型,如果说按值赋值好像不对吧?
我觉得应该是复制结构体的过程是:结构体中属于栈上的部分(值类型和引用(String地址))复制一份在粘上,属于堆上的部分(String实际内存部分)复制一份在堆上,然后把栈上新复制的引用变量(新String地址)指向对应的新复制的堆上的内存(新的String实际内存部分)。具体编译器怎么识别应该是按赋值操作符左右类型来调用对应重载的方法的吧?
同学你好,可以参考一下:
https://blog.csdn.net/A13155283231/article/details/85199844
https://www.cnblogs.com/woaixiaozhi/p/5116137.html
https://www.cnblogs.com/wzzkaifa/p/7400382.html