更新:2007 年 11 月

错误消息

“function1”:当重写“access”继承成员“function2”时,无法更改访问修饰符

试图在方法重写中更改访问规范。

示例

下面的示例生成 CS0507。

 复制代码
// CS0507.cs
abstract public class clx
{
   virtual protected void f() {}
}

public class cly : clx
{
   public override void f() {}   // CS0507
   public static void Main() {}
}

当类试图重写在引用的元数据中定义的标记为 protected internal 的方法时,也会发生 CS0507。在这种情况下,重写方法应标记为 protected

 复制代码
// CS0507_b.cs
// compile with: /target:library
abstract public class clx
{
   virtual protected internal void f() {}
}

下面的示例生成 CS0507。

 复制代码
// CS0507_c.cs
// compile with: /reference:cs0507_b.dll
public class cly : clx
{
   protected internal override void f() {}   // CS0507
   // try the following line instead
   // protected override void f() {}   // OK

   public static void Main() {}
}