继承行为问题

时间:2016-04-21 05:35:48

标签: c# oop inheritance

我创建了一个类,我继承了类

public class abc : Manager, Inteface
{
    public abc() { string a = context; } 
}

当我首先继承类和接口时,我才能获得Manager类的上下文。

当我首先继承接口然后继承管理器类,然后我无法访问管理器类的上下文。

 public class abc : Inteface,Manager
{
    public abc() { string a = context; } // I m not able to access the context of Manager class. 
}

2 个答案:

答案 0 :(得分:4)

这只是无效的C#,编译器应该告诉你它 - 你派生的类应该首先出现在列表中。

作为编译器错误消息的一个例子,你应该得到:

public interface IFoo {}
public class Base {}
public class Derived : IFoo, Base {}

输出:

  

Test.cs(5,30):错误CS1722:基类'Base'必须在任何接口之前

从C#5规范,第10.1.4节:

  

类声明可以包括一个基类规范,它定义了类的直接基类和由类直接实现的接口(第13节)。

     

类基
  : 类型
  : interface-type-list
  : class-type , interface-type-list

     

接口类型列表
  : interface-type
  : interface-type-list , interface-type

答案 1 :(得分:0)

C#提供单继承,因此您只能继承一个类,并且在语法上C#认为在"之后继承的第一个类:"结肠。

任何第二个都将被视为接口。