我有可能從int
,float
,decimal
,DateTime
,TimeSpan
等 裝箱的object
現在我想將它與格式字符串轉換爲string
,如"D4"
,"P2"
,或"yyyyMMdd"
。但object
類沒有接收格式字符串的ToString
方法。所以下面的代碼不起作用。如何將對象轉換爲格式字符串的字符串?
string Format(object value, string format)
{
return value.ToString(format); // error
}
下面是我醜陋的解決方法。
string Format(object value, string format)
{
if (value is int) return ((int)value).ToString(format);
if (value is float) return ((float)value).ToString(format);
if (value is double) return ((double)value).ToString(format);
if (value is decimal) return ((decimal)value).ToString(format);
if (value is DateTime) return ((DateTime)value).ToString(format);
if (value is TimeSpan) return ((TimeSpan)value).ToString(format);
...
}
有沒有更智能的方法?
您的代碼並沒有真正意義 - 所有這些類型都有不同的適用格式字符串,但是'Format'方法給人的印象是任何格式字符串都可以任意應用於任何對象(顯然不是這種情況)。在我看來,你需要首先解開對象,然後決定使用什麼格式的字符串...? –
我不明白你爲什麼不重寫ToString()方法。或者你爲什麼在那裏得到一個錯誤。 –