Attributes.IsDefined ()에 과부하가없는 이유는 무엇입니까?
SO 질문에서 영감을 얻었습니다. Attribute 클래스에는 IsDefined () 메서드에 대한 여러 가지 오버로드가 있습니다 . 어셈블리, 모듈, MemberInfo, ParameterInfo에 적용되는 속성이 포함됩니다. MemberInfo 오버로드에는 PropertyInfo, FieldInfo, EventInfo, MethodInfo, ConstructorInfo가 포함됩니다.
대부분의 AttributeTarget을 처리합니다. 하나의 큰 문제를 제외하고 : Attribute.IsDefined (Type, Type)에 대한 과부하가 없으므로 속성이 클래스에 정의되어 있는지 확인할 수 있습니다. 또는 그 문제에 대한 구조체, 위임 또는 열거.
이것이 실제 문제는 아니지만 Type.GetCustomAttributes ()가 해결할 수 있습니다. 그러나 모든 BlahInfo 유형에도이 유형이 있습니다. 대칭의 부족에 대해 궁금합니다. 왜 이것이 유형에 문제가되는지 손가락을 넣을 수 없습니다. 상속 문제를 추측하는 것이 나에게 설명하지 않습니다. 믹스에 ValueType을 사용하는 것이 리드 일 수 있지만 여전히 이해가되지 않습니다. 나는 "그들은 잊었다"는 구매하지 않습니다.
이 과부하가없는 이유는 무엇입니까?
가 System.Attribute.IsDefined(MemberInfo element, Type attributeType, bool inherit)
있고 System.Type
에서 파생됩니다 System.Reflection.MemberInfo
.
.NET 어셈블리의 최상위 컨테이너 인 어셈블리에는 하나 이상의 모듈이 있습니다. 그런 다음 각 모듈에는 유형이 포함되며 유형에는 속성, 메서드 또는 다른 유형 (중첩 유형)과 같은 멤버가있을 수 있습니다. 이유 System.Type
에서 파생 MemberInfo
개체 모델은 다른 유형을 포함하여 컨테이너 모든 것을 회원, 같은 일에 유형 그렇게 할 수있다.
참고 URL : https://stackoverflow.com/questions/3026405/why-is-attributes-isdefined-missing-overloads
'Programing' 카테고리의 다른 글
Objective-C에서 self = [super init]가 0이 아닌지 확인해야하는 이유는 무엇입니까? (0) | 2020.06.01 |
---|---|
Node.js 단위 테스팅 (0) | 2020.06.01 |
JavaScript에서 왜 2 == [2]입니까? (0) | 2020.06.01 |
빌드 유형이 제품 맛과 다른 이유는 무엇입니까? (0) | 2020.06.01 |
Python 3에서 x ** 4.0이 x ** 4보다 빠른 이유는 무엇입니까? (0) | 2020.06.01 |