C# CS1612 尝试修改集合中值类型的情况

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

    提示"它不是变量",通过官方索引的链接可知,尝试修改某一值类型,但是该值类型作为中间表达式的结果生成但不存储在变量中,会发生报错。

    正确做法是将其赋值给局部变量,然后再将变量赋回集合中的项

    其原因为

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

    因为这里的pro2返回的是值类型,属性的get返回的是副本(如果是属性是个引用类型的话返回的是引用),而直接操作_pro是没有问题的,因为是直接操作对象

  • 如果集合是个List的话,直接通过索引操作也是不行的,而数组的话就可以

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

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

    即再新建一个结构体的实例,赋值回去

参考链接
链接一
链接二

相关推荐
月落.1 小时前
C#中的报文(Message)
开发语言·c#
湛江小浪石(峰)2 小时前
今天推荐一个文档管理系统 Dorisoy.Pan
c#
初级代码游戏2 小时前
C# winforms DataGridView 隐藏行 解决“与货币管理器的位置关联的行不能设置为不可见”
开发语言·c#·datagridview·隐藏行
湖南罗泽南4 小时前
C# 事件和委托的详细介绍
服务器·数据库·c#
沉睡的木木夕4 小时前
【翻译】实现 Blocked Floyd-Warshall 用于解决所有对最短路径问题 C# 实现
c#
c#上位机5 小时前
C#从入门到精通(30)—C#Marshal类用法总结
开发语言·数据结构·c#
爱炸薯条的小朋友6 小时前
C#由窗体原子表溢出造成的软件闪退的问题解决方法
开发语言·c#·bug
傻Q爱12 小时前
.NET 控制台应用程序连接 MySQL 数据库实现增删改查
mysql·c#
啵一杯14 小时前
leetcode621. 任务调度器
服务器·前端·数据结构·算法·c#