컴파일러 경고(수준 1) CS0809
사용되지 않는 'memberA' 멤버가 사용되는 'memberB' 멤버를 재정의합니다.
일반적으로 사용되지 않음으로 표시된 멤버는 사용되지 않음으로 표시되지 않은 멤버를 재정의하지 않아야 합니다. 이 경고는 Visual Studio 2008에서 생성되지만 Visual Studio 2005에서는 생성되지 않습니다.
재정의하는 멤버에서 Obsolete
특성을 제거하거나 기본 클래스 멤버에 추가합니다.
// CS0809.cs
public class Base
{
public virtual void Test1()
{
}
}
public class C : Base
{
[System.Obsolete()]
public override void Test1() // CS0809
{
}
}
컴파일러 경고 CS0809
은(는) 실제로 사용되지 않는 메서드를 호출할 때 CS0618
경고가 발생하지 않습니다.
다음 예제에서 컴파일러는 호출 시 컴파일러에서 인식되는 선언이 파생 클래스 Derived
이(가) 아닌 기본 클래스 Base
에 있으므로 사용되지 않는 Test
메서드에 대해 경고하지 않습니다.
class Base
{
public virtual void Test() {}
}
class Derived : Base
{
[System.Obsolete()]
public override void Test() { }
}
static class Program
{
public static void Main()
{
Derived derived = new();
b.Foo(); // No CS0618
}
}
이 문제를 해결하려면 기본 클래스에도 Obsolete
특성을 추가하세요.
.NET 피드백
.NET은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.