下面是我的当前布局:(问题是注释)

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的成员?感谢:)

有帮助吗?

解决方案

如果你让富保护,

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; }
        }
   }

其他提示

A中的字段声明私人。应当保护的派生类来访问它。

把公共在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
    }
}

默认情况下,除非你指定,否则所有成员都是私有的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top