首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

新建一个实业student,list<student> a添加数据后,清空数据用a.clear()与a=new list<student>

2013-01-23 
新建一个实体student,liststudent a添加数据后,清空数据用a.clear()与anew liststudent哪一种,有啥区

新建一个实体student,list<student> a添加数据后,清空数据用a.clear()与a=new list<student>哪一种,有啥区别
新建一个实体student,list<student> a添加数据后,清空数据用a.clear()与a=new list<student>哪一种,有啥区别

是不是a=new list<student>后的内存地址就跟原来a的地址不一样了?
[解决办法]
对啊。
一个是清除原先列表对象的元素,还是那个对象,元素没了。
一个是新建一个没有元素的空列表对象。

如果同时有几个对象引用,那么差异就来了:

List<Student> a = new List<Student>() { new Student() { id = 1, name = "a"} };
List<Student> b = a;
a.Clear();
Console.WriteLine(b.Count());

List<Student> a = new List<Student>() { new Student() { id = 1, name = "a"} };
List<Student> b = a;
a = new List<Student>();
Console.WriteLine(b.Count());

[解决办法]
直接 清空 就行了,不要 new一个,new一个 将重新开辟一个新的内存空间。

热点排行