型のすべての派生型の検索
プログラミングでは、多くの場合、特定の基本型から継承するすべての型を識別する必要があります。現在、一般的なアプローチは、読み込まれたアセンブリ内のすべての型を反復処理し、それらが基本型に割り当て可能かどうかを確認することです。
ただし、より効率的でクリーンな方法は、LINQ クエリを利用して派生したアセンブリをすべて取得することです。 type:
var listOfDerivedTypes = ( from domainAssembly in AppDomain.CurrentDomain.GetAssemblies() from type in domainAssembly.GetTypes() where typeof(BaseType).IsAssignableFrom(type) select type).ToArray();
このクエリは、現在の AppDomain にロードされたアセンブリ内のすべての型を検索し、基本型に割り当てることができる型を効果的にフィルターします。派生型のリストを返します。
流暢なバージョンと詳細:
コードはより流暢なスタイルで表現できます:
var listOfDerivedTypes = AppDomain.CurrentDomain.GetAssemblies() .SelectMany(domainAssembly => domainAssembly.GetTypes()) .Where(type => typeof(BaseType).IsAssignableFrom(type)) .ToArray();
追加の考慮事項:
以上がC# で基本型のすべての派生型を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。