이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 19862|회답: 1

[출처] .net/c# 기능 상속 상세 설명

[링크 복사]
게시됨 2017. 2. 14. 오전 11:13:38 | | |
설명:

클래스는 두 가지가 있습니다. 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로 설정되어 있기 때문입니다.







이전의:두 객체 속성 간의 C# 할당
다음:잡히지 않은 타입오류: a(...). 부모님(...)의 말씀을 들었죠. 그리고 자기는 함수가 아닙니다
 집주인| 게시됨 2017. 3. 30. 오전 9:35:49 |
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com