특성(C# 프로그래밍 가이드)

업데이트: 2008년 7월

특성은 선언 정보를 C# 코드(형식, 메서드, 속성 등)와 연결하는 강력한 방법을 제공합니다. 특성이 프로그램 엔터티와 연결되면 리플렉션이라는 기술을 사용하여 런타임에 특성을 쿼리할 수 있습니다. 자세한 내용은 리플렉션(C# 프로그래밍 가이드)을 참조하십시오.

특성에는 두 가지 형식이 있습니다.

  • CLR(공용 언어 런타임)로 정의된 특성

  • 코드에 더 많은 정보를 추가하도록 직접 만들 수 있는 사용자 지정 특성. 이러한 부가 정보는 이후에 프로그래밍 방식으로 검색할 수 있습니다.

다음 예제에서는 TypeAttributes.Serializable 특성을 사용하여 클래스에 구체적인 특징을 적용합니다.

[System.Serializable]
public class SampleClass
{
    // Objects of this type can be serialized.
}

특성 개요

특성에는 다음과 같은 속성이 있습니다.

  • 특성은 사용자의 프로그램에 메타데이터를 추가합니다. 메타데이터는 프로그램에 정의된 형식에 대한 정보입니다. 모든 .NET 어셈블리에는 어셈블리에 정의된 형식과 형식 멤버를 설명하는 지정된 메타데이터 집합이 들어 있습니다. 사용자 지정 특성을 추가하여 필요한 추가 정보를 지정할 수 있습니다.

  • 리플렉션을 사용하여 프로그램에서 자체 메타데이터나 다른 프로그램의 메타데이터를 검사할 수 있습니다. 자세한 내용은 리플렉션을 사용하여 특성 액세스(C# 프로그래밍 가이드)를 참조하십시오.

  • MarshallAs와 같은 특성은 COM interop 시나리오에서 광범위하게 사용됩니다. 자세한 내용은 System.Runtime.InteropServices.MarshalAsAttributeSystem.Runtime.InteropServices.StructLayoutAttribute를 참조하십시오.

관련 단원

자세한 내용은 다음 항목을 참조하십시오.

C# 언어 사양

자세한 내용은 C# 언어 사양에서 다음 단원을 참조하십시오.

  • 10.2.1 특성

  • 17 특성

참고 항목

개념

C# 프로그래밍 가이드

특성 개요

특성의 일반적인 사용

참조

리플렉션(C# 프로그래밍 가이드)

변경 기록

날짜

변경 내용

이유

2008년 7월

개요 단원이 업데이트되었습니다.

콘텐츠 버그 수정