我有一个名为Foo的类,它有一个内部类Inner。 Inner类引用外部类的字段。C#调用内部类的方法引用外部类
public class Foo
{
int foo = 2;
public class Inner
{
Foo f;
public Inner(Foo f)
{
f=f;
}
public override String ToString()
{
return "Inner[foo="+f.foo+"]" ;
}
}
}
这是我的程序。
public class Program
{
public static void Main(string[] args)
{
Foo foo=new Foo();
Foo.Inner inner=new Foo.Inner(foo);
Console.WriteLine(inner.ToString());
}
}
编译它没有问题,但是当我运行它时会失败。 它给了我一个异常
未处理的异常:System.NullReferenceException:对象 不设置到对象的实例。在Foo.Inner.ToString()
这是怎么回事?
为什么你想创建一个嵌套类?为什么它不能是两个独立的类,它们在'Foo'中具有'Inner'类的只读属性? –
http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it –