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

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

Barbara Streisand
發布: 2024-12-26 07:56:13
原創
617 人瀏覽過

How Can I Achieve Type-Safe Databinding in .NET Without the `nameof` Operator?

不使用nameof 運算子的型別安全資料綁定:解決方法

在C# 中,缺少nameof 運算子對型別提出了挑戰-安全的資料綁定。傳統上,開發人員採用字串文字來表示屬性名稱,從而引入了錯誤的風險。

.NET 3.5 的解決方法

幸運的是,.NET 存在解決方法3.5 提供nameof-like功能:

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;
    }
}
登入後複製

用法:

var propName = Nameof<SampleClass>.Property(e => e.Name);
Console.WriteLine(propName); // Output: "Name"
登入後複製

.NET 2.0 的實作

不幸的是,在.NET 2.0 中實現功能名稱是由於缺少lambda 表達式和通用物件而不可行

但是,請考慮使用替代解決方案(例如反射或預先填入字典)來安全地檢索屬性名稱。這些方法可能需要更多的手動工作,但仍然可以達到預期的結果。

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

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