Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#에서 더 이상 사용되지 않는(Deprecated) 메서드를 만드는 방법

C# Obsolete 특성(Attribute)이란?

Obsolete 특성은 코드 내의 클래스, 메서드, 속성(Property), 필드, 델리게이트 등 다양한 프로그램 요소를 '더 이상 사용되지 않음(Deprecated)'으로 표시하는 데 사용됩니다. 이 특성은 컴파일 시점에 읽혀지며, 개발자에게 경고(Warning) 또는 오류(Error)를 발생시키는 역할을 합니다.

이 특성은 프로그래머가 반드시 최신 버전의 메서드를 사용하도록 유도하고 싶을 때 매우 유용합니다. 또한 기존의 구버전 메서드에서 새로운 메서드로 전환하는 과정에서 작업을 훨씬 수월하게 만들어 줍니다. 특정 요소를 폐기(Obsolete) 상태로 표시해 두면, 해당 프로그램 요소가 향후 코드베이스의 버전 업데이트 시 제거될 것임을 사용자에게 미리 알릴 수 있습니다.

이 특성은 System 네임스페이스에 포함되어 있으며, 프로그램 요소 바로 위에 대괄호([]) 안에 "Obsolete"라고 작성하여 적용합니다. 특성이므로 ObsoleteObsoleteAttribute 두 가지 이름 모두 사용할 수 있습니다.

Obsolete 특성의 세 가지 생성자

  • [Obsolete] — 매개변수 없는 기본 생성자로, 이 특성의 가장 기본적인 사용 형태입니다.
  • [Obsolete(string message)] — 해당 메서드가 왜 폐기되었는지 설명하는 메시지를 함께 전달할 수 있는 형식입니다.
  • [Obsolete(string message, bool error)] — 메시지와 함께 두 번째 불린(bool) 매개변수를 통해 컴파일러가 컴파일 시점에 오류를 발생시킬지 여부를 제어할 수 있는 형식입니다.

사용 예제

using System;
namespace DemoApplication{
    class Demo{
        static void Main(string[] args){
            ObseleteMethod();
            ObseleteMethodWithMessage();
            ObseleteMethodWithMessageAndNoFail();
            ObseleteMethodWithMessageAndFail();
        }
        [Obsolete]
        public static void ObseleteMethod() { }
        [Obsolete("This Method is Deprecated")]
        public static void ObseleteMethodWithMessage() { }
        [Obsolete("This Method is Deprecated", false)]
        public static void ObseleteMethodWithMessageAndNoFail() { }
        [Obsolete("This Method is Deprecated", true)]
        public static void ObseleteMethodWithMessageAndFail() { }
    }
}

실행 결과

위 코드를 실행하면 각각의 폐기된 메서드 호출에 대해 컴파일러가 경고 또는 오류를 출력합니다. false를 지정한 경우에는 경고만 표시되고 컴파일은 정상적으로 완료되며, true를 지정한 경우에는 컴파일 자체가 실패하며 오류가 발생합니다.

C#에서 더 이상 사용되지 않는(Deprecated) 메서드를 만드는 방법