영어로 읽기

다음을 통해 공유


컴파일러 경고(수준 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 특성을 추가하세요.

참고 항목