Attribute 클래스 소개, 예: 열거된 필드에 Attribute 추가
2346 단어 C#
속성이 제공하는 정보를 메타데이터라고도 부른다.메타데이터는 프로그램이 실행할 때 검사하여 프로그램이 데이터를 처리하는 방식을 제어할 수도 있고 외부 도구가 실행하기 전에 검사하여 프로그램이 처리하거나 자신을 유지하는 방식을 제어할 수도 있다.예를 들면.NET Framework는 속성 유형을 미리 정의하고 속성 유형을 사용하여 런타임 동작을 제어하며, 일부 프로그래밍 언어는 속성 유형 표현을 사용합니다.NET Framework 공용 유형 시스템에서 직접 지원하지 않는 언어 기능입니다.
모든 속성 유형은 Attribute 클래스에서 직접 또는 간접적으로 파생됩니다.속성은 모든 목표 요소에 적용할 수 있습니다.여러 개의 속성을 같은 목표 요소에 적용할 수 있다.또한 속성은 대상 요소에서 파생된 요소에 의해 상속될 수 있습니다.AttributeTargets 클래스를 사용하여 속성이 적용되는 대상 요소를 지정할 수 있습니다.
예:
///
/// Attribute , (tips: , )
///
[AttributeUsage(AttributeTargets.Field)]
public class EnumDisplayName : Attribute
{
public string displayName;
}
///
///
///
public enum TestEnum
{
[EnumDisplayName(displayName = " 1 ")]
One,
[EnumDisplayName(displayName = " 2 ")]
Two,
[EnumDisplayName(displayName = " 3 ")]
Three
}
그리고 디스플레이 가져오는 방법을 정의합니다Name
///
/// TestEnum displayName
///
///
/// displayName
public static string GetOperatorActions(TestEnum oa)
{
string disName = "";
Type type = oa.GetType();
string name = Enum.GetName(type, oa);
FieldInfo field = type.GetField(name);
EnumDisplayName attribute = Attribute.GetCustomAttribute(field, typeof(EnumDisplayName)) as EnumDisplayName;
disName = attribute == null ? null : attribute.displayName;
return disName;
}
테스트:
static void Main(string[] args)
{
//
foreach (TestEnum suit in Enum.GetValues(typeof(TestEnum)))
{
GetOperatorActions(suit);
Console.WriteLine((int)suit + " " + GetOperatorActions(suit) + ":" + suit.ToString());
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
WebView2를 Visual Studio 2017 Express에서 사용할 수 있을 때까지Evergreen .Net Framework SDK 4.8 VisualStudio2017에서 NuGet을 사용하기 때문에 패키지 관리 방법을 packages.config 대신 PackageReference를 사용해야...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.