Enum ToString显示为数字

Lia*_*ath 10 c# enums tostring

我有一个枚举

private enum TimeUnit
{      
  Day,
  Month,
  Year
}
Run Code Online (Sandbox Code Playgroud)

我正在填写描述:

return string.Concat(unit, "(s)");
Run Code Online (Sandbox Code Playgroud)

单位是TimeUnit.大多数情况下这工作正常并显示"Days(s)"然而在特定服务器上它显示为"1(s)"

什么会导致这个?

hap*_*ore 8

尝试使用Enum.GetName()

它还具有更安全的优点,因为它需要:

  • 传入的值不为null.
  • 传入的值是枚举实际可以使用的类型,因为它是基础类型或枚举本身的类型.它使用值上的GetType来检查它.

  • `enum`s不能为空,这很大程度上是精神分裂症的安全. (3认同)