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

보기: 63994|회답: 1

[출처] C#은 IsAssignableFrom, IsSubclassOf 의 결정 명령을 계승합니다

[링크 복사]
게시됨 2019. 11. 18. 오전 11:45:09 | | |
때로는 특정 유형을 찾기 위해 반사 메커니즘을 사용할 때처럼 클래스가 인터페이스를 구현하는지 판단해야 할 때가 있습니다.

간단히 말해, Type.IsAssignableFrom 메서드를 사용할 수 있습니다:

IsAssignableFrom은 BarClass 타입이 IFoo 인터페이스에 할당될 수 있는지 여부를 나타내므로, true로 반환되는 조건은 BarClass가 IFoo 인터페이스를 직접 또는 간접적으로 구현하는 것입니다. 타입 타입에는 IsSubclassOf라는 메서드도 존재하는데, 이는단지클래스의 상속 관계를 판단하는 데 사용된다.

FooClass가 BarClass에서 물려받았음을 나타냅니다.

물론, IsAssignableFrom은 상속을 결정하는 데도 사용할 수 있습니다.

따라서 다음 코드에 대해:

인터페이스 I { /* ... */ }
A 등급 : I { /* ... */ }
B 등급 : A { /* ... */ }
IsSubclassOf 와 IsAssignableFrom 의 반환 값은 다음과 같습니다:

typeof(A).isAssignableFrom(typeof(I)); 거짓
typeof(A).isSubClassOf(typeof(I)); 거짓
  
typeof(I).isAssignableFrom(typeof(A)); 맞아요
typeof(I).isAssignableFrom(typeof(B)); 맞아요
typeof(B).isSubClassOf(typeof(I)); 거짓
  
typeof(A).isAssignableFrom(typeof(A)); 맞아요
typeof(A).isSubClassof(typeof(A)); 거짓
  
typeof(A).isAssignableFrom(typeof(B)); 맞아요
typeof(A).isSubClassof(typeof(B)); 거짓
  
typeof(B).isAssignableFrom(typeof(A)); 거짓
typeof(B).isSubClassof(typeof(A)); 맞아요






이전의:.NET 코어 타임스탬프 변환 (10비트)
다음:EF 코어 피트: DbContextPool이 데이터베이스 연결 풀 연결 고갈을 유발합니다
 집주인| 게시됨 2021. 3. 19. 오후 1:39:47 |
제네릭 기본 클래스를 상속하는 객체를 받습니다

면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com