我定义了一个枚举AttributeName
然后写到下面代码:
Enum .GetValues (AttributeName );
毫无疑问的错了。别人说要加个Typeof
也就是Enum .GetValues (Typeof(AttributeName ));
那么问题来了,为什么要使用Typeof运算符?
Typeof(xx)表示返回xx类型的一个对象,Typeof(AttributeName )就是返回了一个AttributeName类型的对象.
(参考链接 https://msdn.microsoft.com/zh-cn/library/58918ffs)
也就是说这里的AttributeName并不是个对象,只是个名字或者说是个AttributeName类型,这对于枚举来说都是一样的!
而仔细参阅GetValues()方法的参数信息显示是这样的:
public static Array GetValues(
Type enumType
)
要求参数是
Type enumType 即 枚举类型的对象!没错是对象,y由此看来
处理枚举相关问题,Typeof运算符还真是必不可少! 第一次随笔,纯粹个人之心得。很希望所阅之同仁志士能指缺批漏,也希望对抱着问题来的同学有所帮助。
——by跃动的光子.博客园