首页 > 后端开发 > C++ > 如何在'nameof”运算符之前和之后在 C# 中实现类型安全的数据绑定?

如何在'nameof”运算符之前和之后在 C# 中实现类型安全的数据绑定?

Mary-Kate Olsen
发布: 2025-01-01 02:44:08
原创
301 人浏览过

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

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板