SSISO Community

갤러리정

Obsolete - CSharp

12.11 Obsolete

 

Obsolete Attribute 이름에서 이것의 의미를 나타내고 있습니다. Obsolete 일반적으로 쓰이고 있지 않는이라는 뜻을 지니고 있습니다. Obsolete Attribute 메서드에 사용되며 해당 메서드를 사용할 경우 컴파일 시에 경고를 발생시키는 기능을 합니다

Obsolete Attribute

이상 사용하지 않는 프로그램 요소를 표시합니다.

 

Obsolete Attribute 붙어있는 메서드가 호출되면 컴파일 Attribute에서 설정한 내용이 명령 프롬프트 창에 경고로 출력됩니다. 만약, 여러분이 어셈블리를 업그레이드를 하여 배포한다면 기존에 있던 기능의 일부분은 사용하지 말라는 경고를 보내고 싶을지도 모릅니다. 이런 경우에 Obsolete Attribute 추가하면 됩니다. 다음의 예제는 Obsolete Attribute 선언된 메서드와 선언되지 않은 메서드를 호출하는 예제입니다.  

&

ObsoleteTest.cs

Ü Obsolete Attribute 테스트하는 예제

using System;

class 
ObsoleteTest {
  [Obsolete(
"
지금 Obsolete 선언된 메서드를 사용하였습니다. ")]
  
public static void 
ObsoMethod(){
    Console.WriteLine(
"Obsolete Attribute Method!!"
);
  }
  
public static void 
NormMethod(){
    Console.WriteLine(
"Normal Method!!"
);
  }
  
public static void 
Main() {
    ObsoleteTest.ObsoMethod();
    ObsoleteTest.NormMethod();
  } 
//main
//class

C:\C#Example\12>csc ObsoleteTest.cs

ObsoleteTest.cs(11,3): warning CS0618: 'ObsoleteTest.ObsoMethod()'() 사용되지 않습니다. '지금 Obsolete 선언된 메서드를 사용하였습니다. '

C:\C#Example\12>ObsoleteTest

Obsolete Attribute Method!!

Normal Method!!

 

예제를 보면 컴파일할 경고 메시지가 나타나는 것을 있습니다. Java 사용해 적이 있으신 분은 Deprecated라는 구문이 생각나실 것입니다. 사용자가 ObsoMethod() 메서드를 사용한다면 Obsolete 의해서 경고 메시지를 받을 것입니다.

 

[Obsolete("지금 Obsolete 선언된 메서드를 사용하였습니다. ")]

public static void ObsoMethod(){

Console.WriteLine("Obsolete Attribute Method!!");

}

 

메서드를 사용할 수는 있지만 권장하지 않으니 다른 메서드로 대체하라는 의미이죠. Obsolete Attribute 이럴 유용하게 사용할 있는 놈입니다. 이것은 Warning이지 프로그램을 실행하고 실행하지 못하고의 문제는 아닙니다.

[출처] [펌] Obsolete|작성자 눈꽃천사

836 view

4.0 stars