Material Design 오픈 소스코드에서 코드에 취소선을 보고 c#에 해당 기능이 있다는 것을 알게 됐다.
C#에서 메서드나 속성이 취소선(Strikeout) 으로 표시되는 건 보통 [Obsolete] 특성(Attribute) 이 적용됐을 때이다.
1. [Obsolete] 특성
C#에서는 특정 API를 더 이상 쓰지 않도록 권장할 때 ObsoleteAttribute를 붙여.
이 경우 IDE(Visual Studio, Rider 등)에서 취소선으로 표시되고, 컴파일 시 경고 또는 오류를 낼 수 있다.
예시:
public class MyClass
{
[Obsolete("이 메서드는 사용하지 마세요. 대신 Pause()를 사용하세요.")]
public void Suspend()
{
// ...
}
public void Pause()
{
// 새로운 대체 메서드
}
}
이렇게 하면 Suspend()를 호출하는 코드가 IDE에서 취소선으로 보이고, 빌드할 때 경고 메시지가 뜸.
2. Obsolete 속성 옵션
[Obsolete] // 단순히 취소선 + 경고
[Obsolete("메시지", false)] // 메시지 + 경고
[Obsolete("메시지", true)] // 메시지 + 컴파일 오류
3. 실제 사례
- Thread.Suspend() → .NET에서 [Obsolete] 처리되어 있음
(스레드 강제 중지는 Deadlock, 불안정 문제 유발 가능하기 때문) - IDE에서 보면 Suspend()가 취소선 표시되는 이유가 바로 이것 때문이다.
C#에서 메서드가 취소선 표시되는 이유는 해당 메서드에 [Obsolete] 특성이 붙어 있기 때문이다.
직접 적용하려면 클래스나 메서드에 [Obsolete]를 붙이면 된다.
'C#(.Net)' 카테고리의 다른 글
| 박싱/언박싱 (0) | 2025.10.20 |
|---|---|
| #1 C# 언어 요소 (0) | 2025.10.17 |
| 프록시 개념 (디자인패턴 vs 산업용/네트워크 Proxy 모듈) (0) | 2025.08.29 |
| [시작하세요 C# 12 프로그래밍 ] (#16) C# 8.0 (0) | 2025.05.12 |
| [시작하세요 C# 12 프로그래밍 ] (#11) C# 6.0 (0) | 2025.05.06 |