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

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

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-31 08:43:10552浏览

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

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