这是这两个变量唯一有关联得地方 List<TB_CoolegeDepatPost_Person> DepatPosList = new List<TB_CoolegeDepatPost_Person>();
BingListByDepatPosti(out DepatPosList);
CacheDepatPosiList = DepatPosList; //CacheDepatPosiList是一个自定义的属性
DepatPosiList = DepatPosList; //DepatPosiList是一个全局变量然后我在一个方法中对其中一个变量进行了赋值
int a = CacheDepatPosiList.Count;
DepatPosiList.Remove(Items);//
int b =CacheDepatPosiList.Count;一切都是那么正常但是当我执行的时候却诡异的发现当我执行 DepatPosiList.Remove(Items);这句代码的时候CacheDepatPosiList的值也会被删掉一个于是就出现了
a是3
b是2
小弟百思不得其解啊这到底是为啥呢?
虽然以前VS给我报过1==1是错误的这种高智商问题。。但是这回小弟断点,和F11都用烂了。。依然不晓得为啥。。
跪求技术帝。。跪求牛人。。跪求高人。。跪求一切能解释此现象的高人。。
BingListByDepatPosti(out DepatPosList);
CacheDepatPosiList = DepatPosList; //CacheDepatPosiList是一个自定义的属性
DepatPosiList = DepatPosList; //DepatPosiList是一个全局变量然后我在一个方法中对其中一个变量进行了赋值
int a = CacheDepatPosiList.Count;
DepatPosiList.Remove(Items);//
int b =CacheDepatPosiList.Count;一切都是那么正常但是当我执行的时候却诡异的发现当我执行 DepatPosiList.Remove(Items);这句代码的时候CacheDepatPosiList的值也会被删掉一个于是就出现了
a是3
b是2
小弟百思不得其解啊这到底是为啥呢?
虽然以前VS给我报过1==1是错误的这种高智商问题。。但是这回小弟断点,和F11都用烂了。。依然不晓得为啥。。
跪求技术帝。。跪求牛人。。跪求高人。。跪求一切能解释此现象的高人。。
要 list1 = list2.ToList();
或者
list1 = new List<T>();
foreach (var item in list2)
{
list1.Add(item);
}
CacheDepatPosiList = DepatPosList;
DepatPosiList = DepatPosList;
赋值之后,CacheDepatPosiList 、DepatPosiList 、DepatPosList指向的都是同一个对象