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

List<引用类型>的赋值有关问题

2013-04-26 
List引用类型的赋值问题定义:ListMyClass listMyClass myclassDataTable da //表中包含MyClass的属

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<引用类型>的赋值有关问题

热点排行