-
在C#中,发现尝试直接修改集合中值类型的中的值发生报错

提示"它不是变量",通过官方索引的链接可知,尝试修改某一值类型,但是该值类型作为中间表达式的结果生成但不存储在变量中,会发生报错。
正确做法是将其赋值给局部变量,然后再将变量赋回集合中的项

其原因为

-
对于"如果是在定义类或结构,则..."其示例为

因为这里的pro2返回的是值类型,属性的get返回的是副本(如果是属性是个引用类型的话返回的是引用),而直接操作_pro是没有问题的,因为是直接操作对象
-
如果集合是个List的话,直接通过索引操作也是不行的,而数组的话就可以

因为List的索引器是一个属性,而数组是个引用类型

-
对于,"如果是在编写客户端代码...",其示例为

即再新建一个结构体的实例,赋值回去
C# CS1612 尝试修改集合中值类型的情况
红黑色的圣西罗2024-09-29 13:20
相关推荐
波力海苔夹心脆6752 小时前
C# 序列化与反序列化详解:System.Text.Json、Newtonsoft.Json、XmlSerializer 用法、特性选项与安全实践小羊没烦恼!7 小时前
在Scrum中实施敏捷建模Lost of 程序猿8 小时前
建造者模式实战:告别“十参数构造函数“的数据导出任务mudtools10 小时前
在.NET现有系统中快速集成飞书任务分配能力工具派13 小时前
Word文档太大怎么拆分?段落结构与两种拆法的边界实测潜龙952713 小时前
需求文档一键变测试用例:手工用例智能生成平台Lost of 程序猿13 小时前
命令模式实战:把“下单后的动作“打包成可执行的任务淡海水14 小时前
16-01-C#数据结构源码-附录A-术语表小羊没烦恼!14 小时前
【译】利用Asp.net MVC处理文件的上传下载波力海苔夹心脆67514 小时前
C# 海康威视摄像头二次开发入门:HCNetSDK 登录、实时预览、云台控制、录像与抓图(WinForms 实战)