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

C# 속성(Attribute)이란? 개념, 문법, 주요 종류까지 한눈에

속성(Attribute)은 프로그램 내의 클래스, 메서드, 구조체, 열거형, 어셈블리 등 다양한 요소의 동작에 관한 정보를 런타임(runtime)에 전달하기 위해 사용되는 선언적 태그입니다.

쉽게 말해, 코드에 부가적인 메타데이터를 붙여 컴파일러나 런타임 환경이 해당 요소를 어떻게 처리해야 하는지 알 수 있도록 돕는 역할을 합니다.

C# 속성의 기본 문법

속성의 기본 작성 형식은 다음과 같습니다.

[attribute(positional_parameters, name_parameter = value, ...)]
Element

여기서 각 요소의 의미는 다음과 같습니다.

  • 속성의 이름과 값은 대괄호 [ ] 안에 지정하며, 속성이 적용될 대상 요소 바로 앞에 위치시킵니다.
  • 위치 매개변수(positional parameters): 생략할 수 없는 필수 정보를 지정합니다.
  • 명명 매개변수(name parameters): 선택적으로 제공되는 추가 정보를 지정합니다.

C#에서 미리 정의된 주요 속성

C#은 자주 사용되는 기능을 위해 몇 가지 미리 정의된(predefined) 속성을 제공합니다. 대표적인 세 가지를 살펴보겠습니다.

1. AttributeUsage

AttributeUsage사용자 지정(custom) 속성 클래스가 어떻게 사용될 수 있는지를 설명하는 미리 정의된 속성입니다. 예를 들어, 해당 속성이 클래스에만 적용 가능한지, 메서드에도 적용 가능한지 등 유효한 대상 범위를 지정할 때 활용됩니다.

2. Conditional

Conditional조건부 메서드(conditional method)를 표시하는 속성입니다. 이 속성이 적용된 메서드는 지정된 전처리 식별자(preprocessing identifier)가 정의되어 있는 경우에만 실행되며, 그렇지 않으면 컴파일 시 호출 코드가 무시됩니다.

3. Obsolete

Obsolete더 이상 사용해서는 안 되는 프로그램 요소를 표시합니다. 이 속성을 사용하면 컴파일러에게 특정 대상 요소를 폐기(deprecated)하도록 알릴 수 있으며, 해당 요소가 사용될 경우 경고 또는 오류 메시지가 발생합니다.

[Obsolete("OldMethod는 더 이상 사용되지 않습니다. NewMethod를 사용하세요.")]
public void OldMethod()
{
    // 구현 내용
}

이처럼 속성을 활용하면 코드의 의도를 명확히 드러내고, 유지보수성과 가독성을 크게 향상시킬 수 있습니다.