c#中对类嵌套结构中非静态类成员的引用



我在class C中得到了struct S作为嵌套声明,我想在S的构造函数中引用C的成员:

public class C {
private int class_state = 0;

private struct S {
public int struct_state;

public S () {
struct_state = class_state;
}
}
public void foo (int state) {
class_state = state;
}

public void bar () {
S s = new S();
}
}

产生一个错误,class_state是非静态的,因此需要引用C的实例。

是否有一个隐式的方法来告诉struct S引用它实例化的实例?

No。与Java不同,c#嵌套类型没有"相似"。或";automatic"对封闭类型实例的引用。

嵌套类型可以访问其包含类型可访问的所有成员。它可以访问包含类型的私有和受保护成员,包括任何继承的受保护成员。"

但:

要访问包含类型,将其作为参数传递给嵌套类型的构造函数。。">

最新更新