首頁 > 後端開發 > C++ > 如何有效率地找出用特定屬性修飾的 C# 屬性 (AllowMultiple = false)?

如何有效率地找出用特定屬性修飾的 C# 屬性 (AllowMultiple = false)?

Barbara Streisand
發布: 2024-12-28 02:28:09
原創
970 人瀏覽過

How Can I Efficiently Find C# Properties Decorated with a Specific Attribute (AllowMultiple = false)?

最佳化 C# 屬性中的屬性搜尋

在 .NET 反射世界中,檢索帶有特定屬性的屬性清單可能是經常需要的。目前的問題涉及識別帶有 MyAttribute 屬性的屬性,其中 AllowMultiple 設定為 false。

提出的初始方法使用 t.GetProperties() 迭代所有屬性,然後循環檢查每個屬性的屬性與 prop.GetCustomAttributes(typeof(MyAttribute), true)。雖然此方法有效,但它涉及創建多個屬性實例,這可能效率低。

這是一個改進的解決方案,它利用LINQ 中的Where 擴充方法:

var props = t.GetProperties().Where(
                prop => Attribute.IsDefined(prop, typeof(MyAttribute)));
登入後複製

此方法簡化了屬性透過直接呼叫每個屬性的Attribute.IsDefined 來檢查過程,這可以有效地驗證所需屬性的存在而無需實例化它。這顯著提高了效能,特別是對於具有大量屬性的類型。

此外,產生的 props 變數是 PropertyInfo 物件的 IEnumerable,允許根據需要進一步過濾或操作。

以上是如何有效率地找出用特定屬性修飾的 C# 屬性 (AllowMultiple = false)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板