定义一个枚举型的变量(Enum),如:
Public Enum Status
Initial = 0
Process = 1
Finished = 2
End Enum
如果使用Dim strValue As String = Status.Initial.toString()
得到的strValue的值为“Initial”,从这个方面来说上面这句话与
Dim strValue As String = Status.Initial.toString(“G”)等价。
而我们时常需要得到的是枚举型数据对应的值,也就是当我们使用Status.Initial的时候,往往希望得到的是0。
要得到值,应该这样写:
Dim strValue As String = Status.Initial.toString(“D”)
或者使用强制转换
CStr(Status.Initial)也可以达到相同的效果。
用Reflector看了一下Enum.toString()的具体实现,看不懂。
请高手指点一下
,感激不尽!
具体的实现代码是:
public override string ToString() { Type type1 = base.GetType(); FieldInfo info1 = Enum.GetValueField(type1); object obj1 = ((RuntimeFieldInfo) info1).InternalGetValue(this, false); return Enum.InternalF |
版权声明:本文为vividboy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。