Trouver des types dérivés d'un type spécifié
En programmation, il est souvent nécessaire de déterminer tous les types dérivés d'un type de base donné. Traditionnellement, cela a été réalisé grâce à des techniques laborieuses telles que l'itération de tous les types dans les assemblages chargés et la vérification manuelle de la attribuabilité au type cible.
Cependant, une solution plus efficace et élégante existe en utilisant LINQ (Language Integrated Query). L'extrait de code suivant fournit un moyen simple et performant pour accomplir cette tâche:
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseTypeName).IsAssignableFrom(type) select type).ToArray();
syntaxe fluide alternative:
L'expression linq peut également être écrite dans un style plus fluide pour la lisibilité améliorée:
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseTypeName).IsAssignableFrom(type)) .ToArray();
Customations:
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3