在使用傳遞屬性名稱的lambda表達式時,檢索實際屬性名稱可能具有挑戰性。但是,有一些方法可以有效地提取此信息。
最初的實現涉及將lambda表達式強制轉換為成員表達式,假設屬性是字符串。但是,這僅適用於字符串屬性。
為了解決這個問題,需要一種更全面的方法,該方法可以同時處理字符串和非字符串屬性。以下方法提供了一種解決方案:
<code class="language-csharp">public static PropertyInfo GetPropertyInfo<TSource, TProperty>( TSource source, Expression<Func<TSource, TProperty>> propertyLambda)</code>
此方法接受源對象和lambda表達式作為輸入,並返回表示被訪問屬性的PropertyInfo對象。如果表達式不引用屬性,則會引發異常。
在方法的實現中:
通過使用此方法,您可以安全地從lambda表達式中獲取PropertyInfo對象,確保被訪問的屬性具有正確的類型並且存在於目標對像中。
以上是如何從C#中的lambda表達式中檢索屬性名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!