小编Dot*_*Guy的帖子

返回基础知识 - C#编译器错误

public class BaseClass 
{
  protected void BaseMethod() 
  { 

  }
}

public class DerivedClass : BaseClass 
{
  public void Test() 
  {
    DerivedClass d1 = new DerivedClass();
    d1.BaseMethod(); // No error here.        

    BaseClass b1 = new DerivedClass();
    b1.BaseMethod(); // I get compile-time error for this. Why ? 
  }
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码(在VS2005上编译),我得到以下编译时错误 -

错误1无法通过类型为"BaseClass"的限定符访问受保护的成员'BaseClass.BaseMethod()'; 限定符必须是'DerivedClass'类型(或从中派生)

有人可以解释这种行为吗?这里有些根本错误!

c# compiler-errors

6
推荐指数
1
解决办法
213
查看次数

标签 统计

c# ×1

compiler-errors ×1