컴파일러 오류 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() {}
}
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
.NET