コンパイラ エラー 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
CS0507 は、参照されているメタデータで定義されている protected internal
とマークされたメソッドを、クラスがオーバーライドしようとした場合にも発生する可能性があります。 この場合、オーバーライドするメソッドは 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() {}
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET