欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

Enum的toString方法,EnumtoString方法

来源: javaer 分享于  点击 11492 次 点评:117

Enum的toString方法,EnumtoString方法


定义一个枚举型的变量(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()的具体实现,看不懂。请高手指点一下,感激不尽!

具体的实现代码是:

   ToString()
{
       type1 = .();
       info1 = .();
       obj1 = (() ).(, );
       .(, );
}

--------------------------------------------------

以下是从MSDN中找到的有关toString([expression])中参数代表意思的解释:

.NET Framework 开发人员指南  枚举格式字符串 

 

可以使用 ToString 方法创建新的字符串对象,以表示 Enum 的数字、十六进制或字符串值。此方法采用某个枚举格式化字符串指定希望返回的值。

下表列出了枚举格式化字符串及其返回的值。这些格式说明符不区分大小写。

 
格式字符串 结果

G 或 g

如有可能,将枚举项显示为字符串值,否则显示当前实例的整数值。如果枚举定义中设置了 Flags 属性,则串联每个有效项的字符串值并将各值用逗号分开。如果未设置 Flags 属性,则将无效值显示为数字项。

F 或 f

如有可能,将枚举项显示为字符串值。如果值可以完全显示为枚举项的总和(即使未提供 Flags 属性),则串联每个有效项的字符串值并将各值用逗号分开。如果值不能完全由枚举项确定,则将值格式化为整数值。

D 或 d

以尽可能短的表示形式将枚举项显示为整数值。

X 或 x

将枚举项显示为十六进制值。按需要将值表示为带有前导零,以确保值的长度最少有八位。

下面的示例定义一个名为 Colors 的枚举,该枚举包含三项:Red、Blue 和 Green。

Visual Basic 复制代码
Public Enum Colors
   Red = 1
   Blue = 2
   Green = 3
End Enum
C# 复制代码
public enum Colors{Red = 1, Blue = 2, Green = 3}

定义了枚举后,可以按下面的方式声明实例。

Visual Basic 复制代码
Dim MyColors As Colors = Colors.Green
C# 复制代码
Colors MyColors = Colors.Green;

下面的示例使用枚举格式化方法将 DayOfWeek 枚举的字符串、数字和十六进制表示形式赋予字符串 MyString。此代码创建 DayOfWeek 枚举的新实例(名为 MyDays),并为其赋值 Friday。然后,它使用“G”、“F”、“D”和“X”格式化字符串将不同的枚举表示形式赋予 MyString

Visual Basic 复制代码
Dim MyDays As DayOfWeek = DayOfWeek.Friday

Dim MyString As String = MyDays.ToString("G")
' In the U.S. English culture, MyString has the value: "Friday".

MyString = MyDays.ToString("F")
' In the U.S. English culture, MyString has the value: "Friday".

MyString = MyDays.ToString("D")
' In the U.S. English culture, MyString has the value: "5".

MyString = MyDays.ToString("X")
' In the U.S. English culture, MyString has the value: "00000005".
C# 复制代码
DayOfWeek MyDays = DayOfWeek.Friday;

String MyString = MyDays.ToString("G");
// In the U.S. English culture, MyString has the value: "Friday".

MyString = MyDays.ToString("F");
// In the U.S. English culture, MyString has the value: "Friday".

MyString = MyDays.ToString("D");
// In the U.S. English culture, MyString has the value: "5".

MyString = MyDays.ToString("X");
// In the U.S. English culture, MyString has the value: "00000005".

相关文章

    暂无相关文章

用户点评