C# 将Object类转化为List<T>类,其中T的类型不是object类型。 例如:定义:list<ValueTable> list = new list<ValueTable>();
obtect obj;
怎么样将obj的值赋给list.
object obj = new ValueTable(1);
具体的含义可以解释一下嘛。谢谢!
你定义了1个List,里面用来装ValueTable类型的对象,你现在有的是obj对象,
那么你在装obj前,你必须确认obj的真实类型必须是ValueTable或者ValueTable的派生类
object obj = new ValueTable(1);
//这表明了obj其实是1个ValueTable类的实例,这样obj转化成ValueTable 时,val才不为null
非常感谢!还有些疑问。list.count不为1,是不是得object obj = new ValueTable(list.count);
追答new ValueTable(1);
这里的1是,ValueTable实例化的过程中,类中的构造函数
public ValueTable(int id)
{
this.id = id;
}
,把类下面的字段id设为1,你可以设为0,10,1000,只要是int类型就OK,
与list.count没有关系.
实例完成后,再隐式转化成Object类型,
与Object obj =(object ) new ValueTable(1);强转一样的效果.
这个我知道,但是我想转化为不同的类型,做一个通用的方法。
追答那就别用泛型的List了吧,用那种自己手动装箱拆箱的集合。
追问装箱拆箱我不明白啊,能不能举个实例啊!非常感谢!
追答呃~或许你可以尝试定义object的list
List objList = new List();
objList.Add(new Class1());
objList.Add(new Calss2());
取的时候
if(objList[0] is Class1)
{
var _class1 = (Class1)objList[0];
}
以上代码木有验证