我有一个应用程序,其中有很多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