public class A
{}public class B
{
public A GetA()
{
return new A();
}
}public class C
{
private B b = new B();
private A a = b.GetA();
}
此时在编译时会出现“字段初始值设定项无法引用非静态字段、方法或属性ConsoleApplication1.Program.b”的错误。
如果把类C修改成如下:
public class C
{
private A a = new B().GetA();
}
则不会出错,为什么呢?
{}public class B
{
public A GetA()
{
return new A();
}
}public class C
{
private B b = new B();
private A a = b.GetA();
}
此时在编译时会出现“字段初始值设定项无法引用非静态字段、方法或属性ConsoleApplication1.Program.b”的错误。
如果把类C修改成如下:
public class C
{
private A a = new B().GetA();
}
则不会出错,为什么呢?
{
private B b = new B();
private A a = b.GetA();
}中b 只是一類C的一個字段
你要實例了C,才能以你这样的方法来操作
或定义一个static 的b
首先b和a都是类C中的一个成员,这些成员需要在对C进行实例化的时候才会分配内存空间。