编译器错误 CS0507
“function1”:重写“access”继承成员“function2”时不能更改访问修饰符
尝试在方法重写中更改访问规范。
示例 1
下面的示例生成 CS0507。
// CS0507.cs
abstract public class clx
{
virtual protected void f() {}
}
public class cly : clx
{
public override void f() {} // CS0507
public static void Main() {}
}
示例 2
如果一个类尝试重写在引用的元数据中定义的标记为 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() {}
}