c# 对象赋值踩坑

Posted yhood

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# 对象赋值踩坑相关的知识,希望对你有一定的参考价值。

  public class Item
    
        public List<string> List1  get; set; 
        public List<string> List2  get; set; 
        public List<string> List3  get; set; 
        public List<string> List4  get; set; 
    
Item item =new Item;
List<string> list=new List<string>();
item.List1=list;
item.List2=list;
item.List3=list;
item.List4=list;
item.List1.add("sssss"); //此时item的List1,List2,List3,List4也都是同一个值,因为都指向了同一个地址,对任何一个进行操作,另外3个也同时改变

因为一时手误,理所当然的写了这种坑,排查了许久才发现,在这里记录一下,以防再次挖坑。

以上是关于c# 对象赋值踩坑的主要内容,如果未能解决你的问题,请参考以下文章

C# 利用反射给不同类型对象同名属性赋值

c#里面DataTable对象的赋值,难道不是引用的?

C#面向对象基本概念总结

C# WinForm Combobox 赋值

error CS0201: 只有赋值、调用、递增、递减、等待和新对象表达式可以用作语句c#

在 C# 三元运算符中给出错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句