////////////// Big类
class Big{
private small sm;
public small Sm{
get{..}
set{..}
}
}
/////////////////// small类
class small {
public small(){}private int wow;public int Wow{....
....
}}
//////////////game类class game{private Big bg;
public Big Bg{
get{..}
set{..}
}
///////////////// }
/// 在另一个类里调用samll类的时候
//实例game
game gm=new game();
gm.Bg.Sm=new samll();///这样会报错:  未将对象引用设置到对象的实例。 -----------请问这样做为什么不对?怎么解决呢? 

解决方案 »

  1.   

    你的game()构造函数里生成了Big类的实例吗?应该没有生成;
    public Big Bg{
    get{..}//所以这里会返回为null(未将对象引用设置到对象的实例);
    set{..}
    }所以
    gm.Bg.Sm=new samll();
       //Bg为null,一个空的引用就没有办法使用他的属性了;
      

  2.   

    因为gm.Bg未实例化,你要调用gm.Bg.Sm,必须线创建gm.Bg,可以在gm构造函数里创建该对象,也可以通过gm.Bg属性设置该对象的实例!
      

  3.   

    class game{
    public game(){
    bg = new Big();
    }private Big bg;
    public Big Bg{
    get{..}
    set{..}
    }
      

  4.   

    正解 
    在构造函数里new 一个属性的对象就可以了
      

  5.   

    gm.Bg.Sm=new samll();gm.Bg是null
    修改成class Big{
    private small sm=new small();
    public small Sm{
    get{..}
    set{..}
    }
      

  6.   

    晕,头晕,居然复制错了class game{private Big bg=new Big();
    public Big Bg{
    get{..}
    set{..}
    }
      

  7.   

    来接分了,那类是public 的吗