繁体   English   中英

当我尝试将枚举格式化为字符串时,为什么我的格式会给我一个错误?

[英]Why is my format giving me an error when I try to format an enum to a string?

我有以下枚举:

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”

谁能解释我做错了什么?

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

var a = ((int)pk).ToString("00");

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

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

这对我有用。

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

你必须得到价值,然后格式化。 演员阵容是最简单的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM