C#을 사양 17.2 Attribute specification :
속성은 속성 이름과 위치 및 명명 된 인수의 선택 목록으로 구성됩니다. 위치 지정 인수 (있는 경우) 이 이름 지정된 인수 앞에옵니다. 위치 지정 인수는 attribute-argument-expression으로 구성됩니다. 명명 된 인수는 이라는 이름과 등호 다음에 attribute-argument-expression으로 구성되며, 이는 간단한 할당과 동일한 규칙 인 에 의해 제한됩니다. 명명 된 인수의 순서는 이 아닙니다. 그래서 여기
[MyAttribute(MyOption=true,OtherOption=false)]
두 라는 이름의 인수를. 명명 된 인수는 무엇입니까? 또, C#을 사양 17.3.1 Compilation of an attribute :
이름 T (속성 유형)에 비 정적 읽기 쓰기 공공 필드 또는 속성을 식별해야합니다. T가 그러한 필드 또는 특성을 갖지 않으면 컴파일 시간 오류 이 발생합니다.
매우 분명합니다. 당신이 더 많은 명명 된 인수가 필요한 경우
public class MyAttribute : Attribute
{
public bool MyOption { get; set; }
public bool OtherOption { get; set; }
}
- 다른 비 정적 공개 읽기 - 쓰기를 추가 getter 및 setter 또는 비 정적 public 필드와 그 이름 중 비 정적 공용 속성 (대부분은) MyAttribute
클래스에 선언 속성 또는 비 정적 공용 필드에 사용할 이름을 지정하십시오.
public class MyAttribute : Attribute
{
public bool MyOption { get; set; }
public bool OtherOption { get; set; }
public int Answer { get; set; }
// public int Answer; <- another option
}
사용 (중요하지 않습니다 순서) : 속성의 인스턴스를 생성 할 때
[MyAttribute(MyOption=true, Answer=42, OtherOption=false)]
표시 (이름 = "값")? – Hemal