6.0版具有nameof
的新功能,但我无法理解它的用途,因为它仅接受变量名并将其更改为编译时的字符串。
我以为使用<T>
可能有一些目的,但是当我尝试使用nameof(T)
时,它只是打印出T
而不是使用的类型。
有什么目的吗?
最佳答案
如果要重用属性名称,例如在基于属性名称引发异常或处理PropertyChanged
事件时,该怎么办?在很多情况下,您都希望使用属性名称。
举个例子:
switch (e.PropertyName)
{
case nameof(SomeProperty):
{ break; }
// opposed to
case "SomeOtherProperty":
{ break; }
}
在第一种情况下,重命名
SomeProperty
也将更改属性的名称,否则将中断编译。最后一种情况没有。这是保持代码编译和无错误(排序)的一种非常有用的方法。
(一个very nice article from Eric Lippert为什么
infoof
没有成功,而nameof
却没有成功)关于c# - nameof的目的是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31695900/