这是我目前的布局:(问题是评论)
class A
{
int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Doesn't work
base.base.foo // Doesn't work, of course
}
}
如您所见,我无法在C中使用A
来访问base
的成员。我怎样才能访问它?谢谢:))
答案 0 :(得分:6)
如果你保护foo,
class A
{
protected int foo;
}
然后一个简单的基础会做:
void bar()
{
//I want to access foo
base.foo; // will work now
// base.base.foo // Doesn't work, of course
}
但是围绕foo构建一个(受保护的)属性会更好:
class A
{
private int _foo;
protected int Foo
{
get { return _foo; }
set { _foo = value; }
}
}
答案 1 :(得分:3)
A中的字段被声明为私有。应该保护派生类访问它。
答案 2 :(得分:2)
将公开放在int foo之前;
class A
{
public int foo;
}
class B : A {}
class C : B
{
void bar()
{
//I want to access foo
base.foo; // Now you can see it
}
}
默认情况下,除非您另行指定,否则所有成员都是私有的。