nameof在C#中包含运算符的情绪很多.作为此运算符如何工作的示例,nameof(Customer.Name)将返回字符串"Name".
我有一个域对象.我必须绑定它.然后我需要属性的名称作为字符串.我希望它们是类型安全的.
我记得在.NET 3.5中遇到过一种解决方法,它提供了nameoflambda表达式的功能和涉及的lambda表达式.但是,我无法找到此解决方法.任何人都可以为我提供这种解决方法吗?
我也对nameof如果可能的话在.NET 2.0中实现功能的方法感兴趣.
我经常编写C#代码,必须使用魔术字符串来表达属性名称.每个人都知道魔术弦的问题.它们很难重构,它们没有编译时检查,并且通常会导致难以诊断的问题.然而,C#/ .NET 在整个地方使用它们来表示属性/类/方法名称.
这个问题已持续多年和多年,目前唯一可行的解决方案是使用表达式树,然后在运行时解析属性名称.这使您获得令人满意的编译时检查,但它使代码复杂化(需要Expression类型的参数),并且会产生运行时成本.
有没有人知道是否有一个特性考虑因为C#/ .NET添加编译时反射来克服这个普遍存在的问题?
看起来这将是一个简单的补充,它将是一个非破坏性的变化,它将使许多开发人员受益匪浅.typeof()运算符已经执行了编译时反射的形式,因此看起来运算符nameof()(或类似的东西)将非常互补.
此外,有没有人知道这个功能的任何潜在问题?
谢谢您的帮助.