7

我有以下枚举:

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”

有人可以解释我做错了什么吗?

4

3 回答 3

8

在尝试该格式字符串之前,您需要将其转换为 int 。Enum 有自己的 ToString 实现,因此您的 int 格式字符串不正确。

var a = ((int)pk).ToString("00");
于 2012-09-16T05:32:16.517 回答
2

int在尝试格式化枚举值之前尝试转换为:

var a = ((int)EReferenceKey.Accounts).ToString("00");

这对我有用。

于 2012-09-16T05:32:47.047 回答
2

您正在尝试使用 String.Format 的格式字符。枚举是不同的。看看http://msdn.microsoft.com/en-us/library/system.enum.format.aspx

您必须获取值然后格式化。演员表是最简单的方法。

于 2012-09-16T05:35:28.320 回答