我是想问:在c#中如果要定义一个类,包含List<>,如何定义、赋值?谢谢!!!

我是想问:我在c#中定义了一个类:public class aa{ public int x; public List<bb> y;}public class bb{ public string g; public string h;}我是这样赋值的:aa a = new aa();bb b = new bb();b.g = 2;b.h = 3;a.x = 1;a.y.add(b);这里报错 赋值报错了:未将对象引用设置到对象的实例

第1个回答  2012-06-28
public class aa
{
public int x;
public List<bb> y = new List<bb>();
}
public class bb
{
public string g;
public string h;
}
写一个方法测试
private void Method()
{
aa A = new aa();
A.x = 1;
bb B = new bb();
B.g = "G";
B.h = "H";
A.y.Add(B);
MessageBox.Show("A.x =" + A.x.ToString() + " B.g=" + B.g + " B.h=" + B.h);
}本回答被网友采纳
第2个回答  2012-06-28
先要实例化哦,List<bb> y = new List<bb> y() ;
第3个回答  2012-06-28
在构造函数中实例化y追问

能举个例子吗?

追答

例如在类A里定义一个List:
public class A
{
public List numList;

public A()
{
numList = new List();
}
}
这样子,在构造方法A()里把List numList实例化,new出来。

然后在外面可以使用了,例如:
A a = new A();
a.numList.Add(1);
……

如果不想在构造方法里实例化,也可以在外面实例化,
在你的代码“a.y.add(b);”前加上“a.y = new List();”,这样也可以。
但是这样容易出现引用对象为空这个异常,因此还是建议在类里把成员变量定义好。

相似回答