特定の属性を持つプロパティを効率的に取得する方法
特定の属性を所有する、指定された型内のパブリック プロパティのリストを取得するタスクを考えてみましょう。 MyAttribute という属性。この属性は、AllowMultiple を false に設定して定義されます。これは、各プロパティが属性のインスタンスを最大 1 つだけ所有できることを示します。
一般的なアプローチには、GetProperties() を使用してプロパティを反復処理し、各プロパティの存在をチェックすることが含まれます。 GetCustomAttribute[s] 経由の MyAttribute。ただし、この手法は最適ではない可能性があります。
より効率的なソリューションの紹介
この取得プロセスを最適化するには、次のコード スニペットを検討してください:
var props = t.GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
この改善されたアプローチでは、Where 拡張メソッドを利用してプロパティのリストをフィルターし、 MyAttribute 属性が定義されました。この手法は、必要な属性を持たないプロパティの属性インスタンスのインスタンス化を避けるため、より効率的です。
以上がC# で特定の属性を持つプロパティを効率的に取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。