我在将enum
转换为string
时遇到一个问题,但是我需要用零个2位数字填充转换。
例子
public enum System
{
Unknown = 0,
Mirror = 3,
Order = 17
}
输出将是此“ 03” 。
在下面的示例中有效
int value;
value = 3;
Console.WriteLine(value.ToString("D2"));
// Displays 03
但使用enum
无效
Console.WriteLine(SourceSystem.Mirror.ToString("D2"));
出现此错误
System.FormatException
Message=Format String can be only "G", "g", "X", "x", "F", "f", "D" or "d".....
答案 0 :(得分:3)
System.Mirror
当前的类型为enum,这就是为什么不能在其上调用ToString("D2")
的原因,因为您需要在类型为int
的变量上调用此方法。因此,您应该做的是首先将枚举类型转换为int
,然后像这样对转换的变量调用ToString("D2")
,
Console.WriteLine(((int) System.Mirror).ToString("D2"));