Enum的toString方法

  • Post author:
  • Post category:其他


定义一个枚举型的变量(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 版权协议,转载请附上原文出处链接和本声明。