首页 >后端开发 >C++ >在没有'nameof”运算符的情况下,如何在 .NET 中实现类型安全的数据绑定?

在没有'nameof”运算符的情况下,如何在 .NET 中实现类型安全的数据绑定?

Barbara Streisand
Barbara Streisand原创
2024-12-26 07:56:13622浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn