【发布时间】:2013-02-27 12:28:51
【问题描述】:
我有一个枚举
private enum TimeUnit
{
Day,
Month,
Year
}
我正在用以下内容填充描述:
return string.Concat(unit, "(s)");
其中 unit 是 TimeUnit。大多数情况下,这可以正常工作并显示“Days(s)”,但在特定服务器上显示为“1(s)”
这是什么原因造成的?
【问题讨论】:
-
我的猜测是运行不同版本的.Net?您只需添加 unit.ToString() 即可解决
-
我很想知道是什么让这个显示与众不同。如果是 .NET 版本,何时更改,为什么?
-
@Marthin 我相信你可能是正确的 .NET 版本(我不想把我的答案放在问题中)但是 string.Concat 应该导致一个隐式 ToString( ) 所以我'我怀疑简单地添加它会改变而不提供格式信息。
-
@Marthin - 不确定它会改变什么,因为 string.Concat 已经做了 ToString()。
-
@Liath - 问题真的出在 1 上吗?还是可以是另一个数字?因为相同枚举类型的不同版本可能会导致这种情况。例如,如果有一天您添加了第 4 个值并且不部署相应的 dll,您将看到未部署新 dll 的位置显示“3(s)”。