編譯器錯誤 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() {}
}