Enum的toString方法,EnumtoString方法
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 EnumC# 复制代码
public enum Colors{Red = 1, Blue = 2, Green = 3}
定义了枚举后,可以按下面的方式声明实例。
Visual Basic 复制代码Dim MyColors As Colors = Colors.GreenC# 复制代码
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".
相关文章
- 暂无相关文章
用户点评