读书人

Listlt;引用类型gt;的赋值有关问题

发布时间: 2013-04-26 16:27:53 作者: rapoo

List<引用类型>的赋值问题
定义:
List<MyClass> list;
MyClass myclass;
DataTable da; //表中包含MyClass的属性
通过for循环赋值
for(i=0;i<x;i++)
{
myclass= new MyClass();
myclass.Pr1=da.Rows[i][0].ToString();
list.Add(myclass)
}
这样的结果就是list中所有的item都已指向了一个myclass实例。
之后我再MyClass类中定义了一个Copye的方法,来获得一个全新的实例
问题是:我这种做法是不是常规做法,正确的方法应该是什么?
[解决办法]
这样的结果就是list中所有的item都已指向了一个myclass实例。
应该是每个item都对应一个实力的吧 你都是不断地new出来的~

[解决办法]
你这样做实际上每一次都把上次的对象丢弃了,变成了垃圾。要把MyClass声明放到循环里面。
[解决办法]
将MyClass类在for循环里面实例化就可以了!

List<MyClass> list;
DataTable da; //表中包含MyClass的属性
通过for循环赋值
for(i=0;i<x;i++)
{
MyClass myclass = new MyClass();
myclass= new MyClass();
myclass.Pr1=da.Rows[i][0].ToString();
list.Add(myclass)
}

O(∩_∩)O谢谢!!
[解决办法]
上面的回帖中实例化多了一个myclass对象!List<引用类型>的赋值有关问题

List<MyClass> list;
DataTable da; //表中包含MyClass的属性
通过for循环赋值
for(i=0;i<x;i++)
{
MyClass myclass = new MyClass();


myclass.Pr1=da.Rows[i][0].ToString();
list.Add(myclass)
}

O(∩_∩)O谢谢!!
[解决办法]


在某些情况下的确是,特别是针对一部分极端的高手来说。
[解决办法]
这个绝对是正确的。
[解决办法]
List<MyClass>没有实例化。List<引用类型>的赋值有关问题

读书人网 >C#

热点推荐