버전관리를 위한 ObsoleteAttribute

Category:
Author: zemna
Date: April 17, 2021
Share this:

프로그램이나 라이브러리를 버전업할 때 기존에 제작했던 함수를 새로운 기능을 추가한 함수로 대체하거나 할 경우가 생길 수 있습니다.

이런 경우, 기존에 제공하던 함수를 삭제하게 되면 하위 프로그램들과의 호환성에 문제가 생기고, 그냥 두면 코드가 복잡해지고 어디에서 사용했는지 분간해내기 어려운 경우가 생깁니다.

이때, Obsolete 특성을 사용하게 되면 그러한 문제를 해결 할 수 있습니다.

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()  { }
}

위와 같이 적용하고 A 클래스를 사용하게 되면 "use class B" 메세지의 경고가 생성되게 됩니다.

그리고 B 클래스의 OldMethod 함수를 호출하게 되면 이 경우에는 두번째 인수가 true로 설정되어 있으므로 컴파일러 오류가 발생하게 됩니다.

Obsolete 특성은 인수 없이도 사용할 수 있지만 해당 항목이 계속 사용되지 않는 이우와 대신 사용할 항목에 대한 정보를 포함하는 것이 좋습니다.

Share this:

Leave a Reply

Your email address will not be published. Required fields are marked *

Let's connect and create
something awesome together!
2023 - Copyright, All Rights Reserved, Made by ZEMNA.NET with ❤️
crossmenu linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram