컴파일러 오류 CS0546
Visual Studio 2005
오류 메시지
'accessor' : 'property'에 재정의 가능한 set 접근자가 없으므로 재정의할 수 없습니다.'accessor' : cannot override because 'property' does not have an overridable set accessor
접근자는 재정의할 수 없으므로 속성에 대한 접근자 메서드를 재정의할 수 없습니다. 이 오류를 해결할 수 있는 방법은 다음과 같습니다.
-
기본 클래스에 set 접근자를 추가합니다.
-
파생 클래스에서 set 접근자를 제거합니다.
-
파생 클래스의 속성에 new 키워드를 추가하여 기본 클래스 속성을 숨깁니다.
-
기본 클래스의 속성을 virtual로 만듭니다.
자세한 내용은 속성 선언 및 속성 사용(C# 프로그래밍 가이드)을 참조하십시오.
예제
다음 샘플에서는 CS0546 오류가 발생하는 경우를 보여 줍니다.
// CS0546.cs
// compile with: /target:library
public class a
{
public virtual int i
{
get
{
return 0;
}
}
public virtual int i2
{
get
{
return 0;
}
set {}
}
}
public class b : a
{
public override int i
{
set {} // CS0546 error no set
}
public override int i2
{
set {} // OK
}
}