如何有效地檢索具有特定屬性的屬性
考慮取得具有特定類型的指定類型中的公共屬性清單的任務屬性,稱為MyAttribute。此屬性定義時將 AllowMultiple 設定為 false,表示每個屬性最多可以擁有該屬性的一個實例。
一種常見方法包括使用 GetProperties() 迭代屬性並檢查每個屬性是否存在通過 GetCustomAttribute[s] 的 MyAttribute。然而,這種技術可能不是最理想的。
引入更有效率的解決方案
要最佳化此檢索過程,請考慮以下程式碼片段:
var props = t.GetProperties().Where( prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
這種改進的方法利用Where擴充方法來過濾屬性列表,只選擇那些定義了MyAttribute屬性的屬性。這種技術更有效,因為它避免了為不具有所需屬性的屬性實例化屬性實例。
以上是如何在 C# 中有效率地檢索具有特定屬性的屬性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!