首頁 > 後端開發 > C++ > 如何在沒有「nameof」運算子的情況下在 C# 中實現類型安全的資料綁定?

如何在沒有「nameof」運算子的情況下在 C# 中實現類型安全的資料綁定?

Mary-Kate Olsen
發布: 2024-12-31 08:43:10
原創
549 人瀏覽過

How Can I Achieve Type-Safe Data Binding in C# Without the `nameof` Operator?

用於類型安全資料綁定的C# 中缺少「nameof」運算子的解決方法

C# 中缺少「nameof」運算子引發了開發人員之道間的討論。此運算子如果實現,將能夠以字串形式檢索屬性名稱,例如 nameof(Customer.Name) 中的「Name」。

對於需要類型安全資料綁定的場景,開發人員已在缺少「nameof」。 .NET 3.5 中出現了一個利用 lambda 表達式的解決方案。然而,找到這個解決方法可能具有挑戰性。

要在.NET 3.5 中實現'nameof' 的功能,可以採用以下方法:

using System;
using System.Linq.Expressions;

class Program
{
    static void Main()
    {
        var propName = Nameof<SampleClass>.Property(e => e.Name);

        Console.WriteLine(propName);
    }
}

public class Nameof<T>
{
    public static string Property<TProp>(Expression<Func<T, TProp>> expression)
    {
        var body = expression.Body as MemberExpression;
        if (body == null)
            throw new ArgumentException("'expression' should be a member expression");
        return body.Member.Name;
    }
}
登入後複製

此程式碼有效地檢索並顯示屬性名稱作為字串,同時確保類型安全。

以上是如何在沒有「nameof」運算子的情況下在 C# 中實現類型安全的資料綁定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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