ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 编译器错误 CS0507 “function1”:当重写“access”继承成员“function2”时,无法更改访问修饰符 尝试在方法重写中更改访问规范。 ## 示例 <a id="exampleToggle"></a> 下面的示例生成 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() {} } ```