当我没有实例时,我经常想要获取类型的实例属性的名称.目前要执行此操作,我使用以下内部函数来解释Expression[Func[T, object]]参数并返回属性名称:
var str = LinqExtensions.NameOf<ClientService>(x => x.EndDate);
// Now str == "EndDate"
Run Code Online (Sandbox Code Playgroud)
然而,不使用内置nameof运算符似乎是一种耻辱.
不幸的是,nameof运算符似乎需要一个实例,或者引用一个静态属性.
是否有一种巧妙的方式来使用nameof操作员而不是我们的内部功能?例如:
nameof(ClientService.EndDate) // ClientService.EndDate not normally syntactically valid as EndDate is instance member
Run Code Online (Sandbox Code Playgroud)
编辑
我完全错了,nameof(ClientService.EndDate)所描述的语法实际上是按原样工作的.
Pet*_*iho 37
从文档:
在示例中,您会看到可以使用类型名称并访问实例方法名称.您不需要具有该类型的实例 ... [强调我的]
也就是说,你应该能够编写nameof(ClientService.EndDate)并让它工作,这与你在问题中的陈述相反,即"通常不会在语法上有效".
如果您遇到语法问题,请提供一个良好的Minimal,Complete和Verifiable代码示例,可以可靠地重现您获得的任何错误,并提供错误消息的确切文本.
| 归档时间: |
|
| 查看次数: |
8301 次 |
| 最近记录: |