你描述的意思我大概可以理解。
如果你说的“变量”是个int、string这种变量的话,原则上是不可能的。
int id = 1;C#中 int string 这些基类型是值类型,也就是说,第三行代码运行的时候,把id的值 赋给了list[0].ID, 这行代码执行完, id和ID就再也没有关系了 ,值类型继承自System.ValueType。。
如果你的“变量”指的是一个“类型”:
List<MyEntity> list1 = new List<MyEntity>()那么类型之间的“=”是引用类型的操作,引用类型继承自System.Object, 引用类型在赋值时, 不复制对象本身,只复制对象的引用。
所以在这种情况下,list1[0].ID 变成2的时候,list2[0].ID也是2.
说的更形象一点的话(不一定对):
值类型的赋值,b=a,相当于把a的结果复制给了b。从此a和b没有任何关系。
引用类型的赋值b=a ,实际上只是建立了引用,当你用到b的时候,是去内存中调用a的值,b本身还是什么都没有。