日期:2014-05-18  浏览次数:21050 次

List <T> 添加数据 报 未将对象引用设置到对象的实例
先有声明一个类如下

 public class Cmocta
  {
  public Cmocta()
  { }  
  private decimal? _ta024;

  private List<Cmoctb> _cmoctbs;
  /// <summary>
  /// 子类 
  /// </summary>
  public List<Cmoctb> Cmoctbs
  {
  set { _cmoctbs = value; }
  get { return _cmoctbs; }
  }

  }
然后我在窗体上的代码如下,
Maticsoft.Model.Cmoctb modelb = new Maticsoft.Model.Cmoctb();
  modelb.tb001 = model.ta001;
  modelb.tb002 = model.ta002;
  modelb.tb003 = model.ta003;
  model.Cmoctbs.Add(modelb);
以上编译可以通过,只是运行到 model.Cmoctbs.Add(modelb);就报未将对象引用设置到对象的实例错误,该如何修正代码呢

------解决方案--------------------
Cmoctbs没有初始化,在model的构造函数中加上 

_cmoctbs = new List<Cmoctb>()
------解决方案--------------------
报错说的很好啊
_cmoctbs没有实例化,在添加数据之前给它实例化一下
------解决方案--------------------
_cmoctbs没有实例化
------解决方案--------------------
C# code

private List<Cmoctb> _cmoctbs;
public List<Cmoctb> Cmoctbs
{
   get
 { if (_cmotbs == null)
 { _cmotbs = new List<CMoctb>();
}
 return _cmoctbs; }
   set
 { _cmoctbs = value;
 }
   }