Obsolete(C# 프로그래밍 가이드)
업데이트: 2007년 11월
Obsolete 특성은 프로그램 엔터티를 계속 사용하지 않는 편이 좋은 것으로 표시합니다. 이 특성이 어떻게 구성되어 있는지에 따라 obsolete로 표시된 엔터티를 사용할 때마다 경고나 오류가 생성됩니다. 예를 들면 다음과 같습니다.
[System.Obsolete("use class B")]
class A
{
public void Method() { }
}
class B
{
[System.Obsolete("use NewMethod", true)]
public void OldMethod() { }
public void NewMethod() { }
}
이 예제에서 Obsolete 특성은 A 클래스와 B.OldMethod 메서드에 적용됩니다. B.OldMethod에 적용되는 특성 생성자의 두 번째 인수는 true로 설정되어 있으므로 이 메서드를 사용하면 컴파일러 오류가 발생하는 반면, A 클래스를 사용하면 경고만 생성됩니다. 그러나 B.NewMethod를 호출하면 경고나 오류가 생성되지 않습니다.
특성 생성자에 첫 번째 인수로 제공되는 문자열은 경고나 오류의 일부로 표시됩니다. 예를 들어, 다음 코드를 위 정의와 함께 사용하는 경우 두 개의 경고와 한 개의 오류가 생성됩니다.
// Generates 2 warnings:
A a = new A();
// Generate no errors or warnings:
B b = new B();
b.NewMethod();
// Generates an error, terminating compilation:
b.OldMethod();
A 클래스에 대해 클래스 참조의 선언 및 클래스 생성자와 관련하여 경고가 하나씩 생성됩니다.
Obsolete 특성은 인수 없이 사용할 수 있지만 해당 항목이 계속 사용되지 않는 이유와 대신 사용할 항목에 대한 정보를 포함하는 것이 좋습니다.
Obsolete 특성은 단일 사용 특성이며 특성이 허용되는 임의의 엔터티에 적용할 수 있습니다. Obsolete는 ObsoleteAttribute에 대한 별칭입니다.