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

如何在「nameof」運算子之前和之後在 C# 中實現類型安全的資料綁定?

Mary-Kate Olsen
發布: 2025-01-01 02:44:08
原創
265 人瀏覽過

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

C# 中類型安全資料綁定的Nameof 運算子替代

C# 目前的語言改進之一是包含「nameof」 ' 操作員。此運算符允許對屬性名稱進行類型安全訪問,從而更輕鬆地將網域物件綁定到 UI 元素。下面是一種解決方法,可以在實作「nameof」運算子之前在 C# 中提供類似的功能。

.NET 3.5 解決方法

在.NET 3.5 中,您可以使用lambda 表達式將屬性名稱提取為字串:

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# 3.0 或更高版本。

.NET 2.0 相容性

不幸的是,實作 'nameof' 運算子的功能.NET 2.0 是不可能的。但是,您仍然可以使用反射手動建構屬性名稱。

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

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