설명:
클래스는 두 가지가 있습니다. A와 B, I A는 클래스 B를 상속하고, B는 부모 클래스입니다
TestAttribute 속성을 각각 클래스 A와 클래스 B에 설정했습니다...
그 다음, 객체의 특성을 취하면 코드는 다음과 같습니다:
결과 수가 1이고, 속성은 B가 설정한 속성이 아니라 병합된 속성이 아니라 A가 설정한 속성이라는 것을 알게 되었습니다. 왜 그런가요???
[Help("BaseClass"]] publicclass Base{} publicclass 파생 : Base{} 여기에는 네 가지 가능한 조합이 있습니다:
[AttributeUsage(AttributeTargets.Class), AllowMultiple = false, Inherited = false] [AttributeUsage(AttributeTargets.Class), AllowMultiple = true, Inherited = false ] [AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = true] [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true] 첫 번째 사례:
Derive 클래스를 쿼리하면(나중에 런타임에 클래스의 속성을 쿼리하는 방법을 알겠습니다), 상속된 속성이 false로 설정되어 있어 Help 기능이 존재하지 않습니다.
두 번째 경우:
첫 번째 경우와 마찬가지로 상속 값도 false로 설정되어 있습니다.
세 번째 상황:
세 번째와 네 번째 경우를 설명하기 위해, 먼저 파생 클래스에 코드를 추가해 보겠습니다:
[Help("BaseClass"]] publicclass Base{}[Help("DeriveClass")] publicclass Derive : Base{} 이제 도움말 기능을 쿼리해 보겠습니다. inherited는 true로 설정되어 있고 AllowMultiful은 false로 설정되어 있어 파생 클래스의 속성만 얻을 수 있습니다. 따라서 기본 클래스의 도움말 기능은 파생 클래스의 도움말 기능에 의해 무시됩니다.
네 번째 상황:
여기서 파생 클래스는 기본 클래스의 도움말 기능과 자체 도움말 기능을 모두 가지고 있는데, 이는 AllowMultirity가 true로 설정되어 있기 때문입니다.
|