-
[C#] Obslete란?C# 2022. 9. 20. 23:27728x90
안녕하세요.
오늘은 C#언어의 Obslete에 대해 간단하게 알아보고자 합니다.
먼저 Obsolete란 단어의 뜻은 : '더 이상 쓸모가 없는, 한물간, 구식의 라는 뜻'의 형용사입니다.
출처
https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=oboslete
oboslete : 네이버 통합검색
'oboslete'의 네이버 통합검색 결과입니다.
search.naver.com
그렇다면 C#에서는 어떤 용도로 사용될까요?
공식문서 정의에는 이렇게 나와 있습니다.
더 이상 사용하지 않는 프로그램 요소를 표시합니다.
라고 말이죠.
https://learn.microsoft.com/ko-kr/dotnet/api/system.obsoleteattribute?view=net-6.0
ObsoleteAttribute 클래스 (System)
더 이상 사용하지 않는 프로그램 요소를 표시합니다. 이 클래스는 상속될 수 없습니다.
learn.microsoft.com
사용방법은 간단합니다. 더이상 사용하지 않을 곳에 [Obsolete]라고 붙여주시면 되겠습니다.
그럼 예제를 통해 비교해 보겠습니다.
FunctionA(); FunctionB();
메인에 간단한게 테스트해 볼 FunctionA와 FunctionB를 정의합니다.
static void FunctionA() { Console.WriteLine("Function A"); } static void FunctionB() { Console.WriteLine("Function B"); }
네 이렇게 간단하게 정의하겠습니다.
현재 상황에서는 코드를 실행하면 정상으로 작동합니다.
이제 [Obsolete]를 추가해보겠습니다.
비교를 위해 FunctionA에만 Obsolete를 추가하겠습니다.
Case 1 [Obsolete]만 추가할 경우
이렇게 추가를 해준뒤 FunctionA함수를 호출하는 부분인 메인함수쪽을 보면
이렇게 Visual Studio기준 초록줄과 함께 [사용되지 않음] 으로 표시되는걸 확인하실 수 있습니다.
그럼에도 FunctionA는 정상 실행합니다.
Case 2 [Obsolete("message",false)]옵션을 준 경우
이번에는 Obsolete에 간단한 옵션을 주겠습니다.
메세지를 주고 다음 파라미터에는 false를 준 경우입니다.
저는 메세지쪽에 "This is Old Function"이라고 주겠습니다.
스크린샷으로 만나보시죠
먼저 FunctionA입니다.
이렇게 줬습니다. 그럼 호출하는 메인쪽을 가볼까요?
아까와의 차이점이 보이실까요?
제가 추가한 메세지가 뒤에 붙는걸 보실 수 있습니다.
이번에도 FucntionA는 초록색 줄은 그어져 있지만 정상 실행됩니다.
Case 3 [Obsolete("message",true)]옵션을 준 경우
이번에는 메세지를 주고 false였던 옵션을 true로 바꿔주겠습니다.
FunctionA에 이렇게 기존의 메세지에서 옵션을 true로 바꿨습니다.
그렇다면 FunctionA를 호출하던 메인에서는 어떨까요?
이번에는 초록줄이 아닌 빨간줄이 그어져 있는걸 확인하실 수 있습니다.
그리고 이번에는 빌드가 되지않는걸 확인하실 수 있습니다.
찾아보니 해당 기능은 '협업'시에 알아보기 위해 자주 사용한다고합니다.
저는 이번기회에 처음알았는데 다음에 자주 써먹어봐야겠습니다.
오늘은 이만 마무리하겠습니다.
다들 건강 조심하시길 바랍니다.
감사합니다. :D
'C#' 카테고리의 다른 글
[C#] System.InvalidCastException: 'Unable to cast COM object of type 'System.__ComObject' .. 관련 에러 (0) 2023.05.25 [C#] Process실행시 Unhandled exception. System.ComponentModel.Win32Exception 관련 오류 (2) 2023.01.05 [C#] System.Text.Json을 이용한 Json 데이터 탐색 (1) 2022.08.26 [C#] string.Format사용시 입력 문자열의 형식이 잘못되었습니다. 관련 오류 (0) 2022.08.11 [C#] double형 시간변환 관련 (0) 2022.06.22