比如说 public class A { public string aa{get;,set;} public List<B> blist{get;set;} } public class B { public string bb1{get;set;} public string bb2{get;set;} } //然后我赋值给a. A a=new A();//实例化model A。 a.aa="hello";//给a的aa赋值。 //前面都没有问题,下面就报错了,提示Object reference not set to an instance of an object? a.blist.add(new B{bb1="helloword",bb2="heyboys"}); 我的问题是,前面已经实例化了model A,应该里面的blist也一并实例化了啊,为什么还是提示为实例化,而且当我 |
|
求解决,大神来一下
|
|
10分 |
类在实例化时,会为未赋值的字段赋默认值,即default(T)
default(List<B>)为null,null.Add当然报异常 至于你说的a.aa=”hello”;不报错,赋值当然不报错了 你执行的是a.blist.add,不是赋值 |
2分 |
如果你要默认就赋值的话,那么应该写构造函数
public A { this.blist = new List<B>(); } |
8分 | |
谢谢了,了解了,多学了点东西 |
|
谢谢 |