c# - 访问第二个父级的成员(继承)

标签 c# class inheritance double

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

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 中的 base 访问 A 的成员。我如何访问它?谢谢:)

最佳答案

如果你让 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 构建一个( protected )属性会更好:

   class A
   {  
        private int _foo;  
        protected int Foo 
        {
           get { return _foo; }
           set { _foo = value; }
        }
   }

关于c# - 访问第二个父级的成员(继承),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1262846/

相关文章:

java - 利用继承和多态来绘制图像?

c# - 类型名称 'DatasetTableAdapters' 在类型中不存在

c# - 从c#中的字符串中提取最后一个匹配项

c++ - 在施工期间向下倾斜是否安全?

使用 F# 继承空引用异常

java - 使用CMD用Java文件编译Jar文件(供类使用)

c# - 温特市的 Bing map

c# - 使用 C# 反射调用构造函数

c++ - 读取和存储用户输入时遇到问题

c++ - 在堆栈上声明对象的两种方式之间的区别