파생 유형 찾기: 효율적이고 포괄적인 접근 방식
소프트웨어 개발에서는 특정 기본 유형에서 파생된 모든 유형을 식별하는 것이 중요할 수 있습니다. . 할당 가능성 확인과 관련된 일반적인 접근 방식은 성능이나 우아함 측면에서 최적이 아닐 수 있습니다.
Linq 기반 솔루션
보다 효율적이고 구문적으로 간결한 접근 방식 Linq를 활용하는 것입니다. 다음 코드 조각은 기본 유형 B에서 상속되는 모든 유형을 찾는 Linq 쿼리를 보여줍니다.
var listOfBs = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() // alternative: from domainAssembly in domainAssembly.GetExportedTypes() from type in domainAssembly.GetTypes() where typeof(B).IsAssignableFrom(type) // alternative: && type != typeof(B) // alternative: && ! type.IsAbstract // alternative: where type.IsSubclassOf(typeof(B)) select type).ToArray();
가독성 향상을 위한 Fluent API
가독성 및 유지 관리 용이성 향상 , 위의 쿼리는 Fluent를 사용하여 리팩터링될 수 있습니다. API:
var listOfBs = AppDomain.CurrentDomain.GetAssemblies() // alternative: .GetExportedTypes() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(B).IsAssignableFrom(type) // alternative: => type.IsSubclassOf(typeof(B)) // alternative: && type != typeof(B) // alternative: && ! type.IsAbstract ).ToArray();
고려 사항 및 개선 사항
이 Linq 기반 접근 방식은 여러 가지 장점을 제공합니다.
결론
이 Linq 기반 솔루션은 지정된 기본 유형의 모든 파생 유형을 검색하는 성능이 뛰어나고 확장 가능한 수단을 제공합니다. 다재다능함과 유연성 덕분에 다양한 사용 사례에 적응할 수 있습니다.
위 내용은 C#에서 모든 파생 유형을 효율적으로 찾으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!