访问第二个父母的成员(继承)

Laz*_*zlo 2 c# double inheritance class

这是我目前的布局:(问题是评论)

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
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我无法A通过base在C中使用来访问成员.我如何访问它?谢谢 :)

Hen*_*man 6

如果你保护foo,

class A
{  
    protected int foo;  
}
Run Code Online (Sandbox Code Playgroud)

然后一个简单的基地会做:

  void bar()
  {
        //I want to access foo
        base.foo; // will work now
        // base.base.foo // Doesn't work, of course
  }
Run Code Online (Sandbox Code Playgroud)

但是围绕foo构建一个(受保护的)属性会更好:

   class A
   {  
        private int _foo;  
        protected int Foo 
        {
           get { return _foo; }
           set { _foo = value; }
        }
   }
Run Code Online (Sandbox Code Playgroud)

  • @Lazlo - 你不应该道歉,这就是这个网站的用途. (2认同)