问题描述
classA{.....publicA(){......}}classB{privateAa=null;.....publicB(){a=A();......}staticvoidMain(){using(Bb=newB()){While(...){b.a.function();//报错,错误提示“未将对象引用设置到对象的实例”a=null,以前遇到过这类错误,但都易于解决,这次似乎不同,其中逐句调试a所包含的变量、类型均已赋值,可是运行完之后a的状态竟然是“未定义值”,除a外其他类型均正常赋值}}}}如果将上面代码改为如下模式又可以正常工作:staticvoidMain(){using(Bb=newB()){b.a=newA();whil(....){b.a.function();}}}b中其他类型均可以放在在b的构造函数中加载,为何这个a却只能在Main()中加载?请您支招
解决方案
解决方案二:
B中的a已经声明为private了,怎么还能在其它地方使用?费解。。。。测试代码如下:staticvoidMain(){using(Bb=newB()){b.a.function();}}classA{publicvoidfunction(){Console.WriteLine("A");}}classB:IDisposable{publicAa;publicB(){a=newA();}publicvoidDispose(){}}
时间: 2024-10-30 11:55:38