我有以下枚举:
public enum EReferenceKey {
Accounts = 1,
Emails = 3,
Phones = 4
}
当我的枚举变量pk是Accounts时,我尝试使用
将其转换为“01”var a = pk.ToString("00");
它给了我以下例外:
格式字符串只能是“G”,“g”,“X”,“x”,“F”,“f”,“D”或“d”
有人可以解释我做错了吗?
答案 0 :(得分:6)
在尝试格式化字符串之前,需要将其强制转换为int。 Enum有自己的ToString实现,因此你的int格式字符串不正确。
var a = ((int)pk).ToString("00");
答案 1 :(得分:2)
在尝试格式化枚举值之前,请尝试转换为int
:
var a = ((int)EReferenceKey.Accounts).ToString("00");
这对我有用。
答案 2 :(得分:2)
您正在尝试使用String.Format的格式字符。枚举是不同的。看看http://msdn.microsoft.com/en-us/library/system.enum.format.aspx。
您必须获取值然后格式化。演员阵容是最简单的方法。