我有一個應用程序,其中有很多Decimal.ToString(void)的調用。默認格式不是需要的。我可以將這些電話更改爲其他電話號碼Decimal.ToString overloads,但如果我不需要,它會更好。那麼,有沒有辦法爲Decimal.ToString(void)方法指定不同的格式,以便我不必修改對此方法的任何調用?指定Decimal.ToString()方法的默認格式
更新
如下的回答表明,這是可以做到我想要的,但我不應該這樣做,因爲它不是良好的編程習慣。有許多替代方法涉及重寫呼叫;我打算去的方法是存儲所需的格式字符串常量,並傳遞到呼叫:
class Example
{
const string s_DecimalFormat = "N2";
private decimal myDecimal1 = 12.345;
private decimal myDecimal2 = 6.7;
public void Method()
{
System.Console.WriteLine(myDecimal1.ToString(s_DecimalFormat));
System.Console.WriteLine(myDecimal2.ToString(s_DecimalFormat));
}
}
您願意解釋爲什麼更改'CultureInfo.Curre ntculture'不會是個好主意嗎? – 2014-09-03 07:23:32
@DanStevens主要是因爲它改變了整個程序。如果您不通過另一個FormatProvider,許多方法在內部使用它。我猜OP沒有。另外,修改*只是十進制格式是其他程序員無法預料的。這與最小驚喜的原則相違背。將它改變成另一種文化是一回事,改變一種文化或者改變自己的文化是不好的。 – nvoigt 2014-09-03 08:09:52