Share via


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