永发信息网

在C#中如何做到将变量赋给List集合后,当变量的值改变的时候集合里的对应值也相应改变给个学习的示例代码

答案:1  悬赏:80  手机版
解决时间 2021-04-02 06:26
在C#中如何做到将变量赋给List集合后,当变量的值改变的时候集合里的对应值也相应改变给个学习的示例代码
最佳答案
你描述的意思我大概可以理解。
如果你说的“变量”是个int、string这种变量的话,原则上是不可能的。
int id = 1;
List list = new List(); //一个list
list[0].ID = id;//把int的值赋给list第一个元素的ID属性
id+=1;
//output list[0].ID; ? 是否等于2

C#中 int string 这些基类型是值类型,也就是说,第三行代码运行的时候,把id的值 赋给了list[0].ID, 这行代码执行完, id和ID就再也没有关系了 ,值类型继承自System.ValueType。。


如果你的“变量”指的是一个“类型”:
List list1 = new List()

    new MyEntity()
    {
        ID =1,
    }
}; //声明一个 list1 实例化了一个元素,元素的ID =1

var list2 = list1;
list1[0].ID +=1;
//output list2[0].ID?那么类型之间的“=”是引用类型的操作,引用类型继承自System.Object, 引用类型在赋值时, 不复制对象本身,只复制对象的引用。 
所以在这种情况下,list1[0].ID 变成2的时候,list2[0].ID也是2.




说的更形象一点的话(不一定对):
值类型的赋值,b=a,相当于把a的结果复制给了b。从此a和b没有任何关系。
引用类型的赋值b=a ,实际上只是建立了引用,当你用到b的时候,是去内存中调用a的值,b本身还是什么都没有。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有一首是Don`t stop! get it! get it!don`t s
scm440是什么材料
16平方毫米的铜芯线能承受多大的电流?
词语千什么百什么?
老弟问我要钱,50块.我讲什么,四十,你要三十干
各位大佬新手剑宗满级以后怎么玩我打算刷领主
去宜春明月山玩两天大概要多少钱呢
身不由己的歌词是??
陆川至藤县路线
河北沙城战役是谁指挥的
◎÷()=●……78
癸酉癸亥癸卯乙卯,女,大师帮忙看看姻缘呢
笛子的筒音作出5是什么意思
本人女,18岁跟男朋友啪啪,进去的太深的话,
游泳晒爆皮了怎么办…
推荐资讯
she tells these stories to her friends怎么
我今年8月买的大众捷达,大灯一个远一个近,怎
潍柴24气门和12气门的调节方法
有关保险增员的话 怎么做
初夏的风景有哪些
求门面营业员的排班,三个营业员,求一个合理
韩语学到能看懂韩剧要怎么学?多久?
下列词语中加点的字,读音全都正确的一组是C
52岁买社保要补多少钱
陆游75岁时,写的怀念唐婉儿的诗
云南有几个市 几个县
怎么样可以让一个女人崩溃离婚
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?