问题描述
请看如下代码:DataTabletb1,tb2;DataRowdr1,dr2;tb1=newDataTable("test1");tb1.Columns.Add("thread_id",System.Type.GetType("System.String"));tb1.Columns.Add("value",System.Type.GetType("System.String"));dr1=tb1.NewRow();dr1["thread_id"]="st1";dr1["value"]="st1_value";tb1.Rows.Add(dr1);dr2=dr1;dr2["value"]="dr2_value";问题:为什么行变量dr2=dr1后,我改变dr2的值但test1中的值和dr1行的值都在跟着变,难到用dr2=dr1后dr2变量不是dr1副本吗?在C#中类似这样的情况叫什么名?在MSDN中什么地方有相关说明?谢谢!!
解决方案
解决方案二:
这个最后一行没有提交至数据库前程序一直认为是新行
解决方案三:
DataRow是引用类型(ReferenceType),传递的都是引用,所以dr2=dr1后,dr2和dr1都指向同一个DataRow了,你修改任何一个另外一个都跟着变
解决方案四:
引用类型与值类型的区别
时间: 2024-10-28 12:03:00