C# 改变容器里面结构体的值
来源:互联网 发布:清华男子自宫真相知乎 编辑:程序博客网 时间:2024/06/06 17:16
List<SendMessage> sendingMessages = null;
if(sendingMessages !=null && sendingMessages.Count > 0){
// Debug.Log("current in sending msg: " + sendingMessages.Count);
for(int i=0; i<sendingMessages.Count; i++){
// Debug.Log("msg time: " + msg.time.ToString());
SendMessage msg = sendingMessages[i];
msg.time +=Time.deltaTime;
}
}
因为刚做unity没多久,c#是现学现用,上次又遇到一个坑,
SendMessage msg = sendingMessages[i];
msg.time += Time.deltaTime;
这样代码写完以后我以为list里面对应的值被改变了,结果后来证明是没有变化的,查资料发现结构体是值类型的,我这样写改变的是一份拷贝,
解决方案有2个:
1, 最后再加上:
sendingMessages[i] = msg;
2,把容器里面结构体改称类
根据c#高级编程里面的说法,
结构体在c#里面是值类型,
SendMessage msg;不是一个引用,已经创建了一份内存,所以结构体可以new,也可以不new
都是用的这一份内存。
- C# 改变容器里面结构体的值
- Swift 系统学习 18 结构体 改变结构体里面的元素
- 改变结构体的值
- 如何让FlowLayoutPanel容器里面的【子控件】随着容器(宽度)发送改变而发送改变?
- 结构体里面的.value
- 联合体里面的结构体
- 在C#里面调用带有回调函数和自定义结构体的DLL的例程
- 在C#里面调用带有回调函数和自定义结构体的DLL的例程
- C#里面的类和结构的区别
- 12、C#里面的Switch分支结构的使用
- 14、C#里面的循环结构:while的使用
- 15、C#里面的for循环结构的使用
- 10、C#里面的分支结构if和else
- 13、C#里面do...while循环结构的使用
- 如何改变里面的*符号
- 结构体里面套结构体数组的使用
- 结构体空间以及结构体里面指针的空间
- stlport调试watch查看容器里面的值
- C++函数声明的时候后面加const
- Windows 8 or 2012 Tips and Shortcuts - 09/19
- jQuery.alert2
- segmentation fault
- wp7 关于从MemmorySream中复制字节流
- C# 改变容器里面结构体的值
- Oracle安装目录admin下各文件夹的作用的说明
- C++模板学习
- 11 java 王少飞-java SE 加强 反射小节
- jQuery.Tips
- plsql中创建dblink
- 排序之逆序数
- Java多线程(六)、ThreadLocal类
- 话少点 大哥