我有很多调用的应用Decimal.ToString的(无效) 。 默认的格式是不是需要什么。 我可以改变这些调用其他的一个Decimal.ToString的过载 ,但如果我没得还要好。 那么,有没有指定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));
}
}
从理论上讲,如果你改变System.Globalization.CultureInfo.CurrentCulture
的东西,格式化小数你想要的方式,这会工作。 它会打开你不想与10英尺极触摸蠕虫的一个巨大的可以。 不要这样做。 将所有您的来电。 也许写它的方法。
一个扩展方法可能是好的,在这里。 就像是:
public static string ToMyString(this decimal value)
{
return value.ToString("your formatting");
}
我@nvoigt同意改变全球化的设置是一个坏主意
你可以编写自己的扩展方法。 举个例子:
public class Test
{
private void DoStuff()
{
Decimal d = new Decimal();
d = 0.5M;
Console.WriteLine("{0}", d);
Console.WriteLine("{0}", d.ToCustomString());
}
}
public static class Extensions
{
public static string ToCustomString(this Decimal number)
{
return string.Format("Blah {0}", number.ToString());
}
}
输出:
0.5
Blah 0.5
当使用Decimal.ToCustomString代替的ToString,至少在这种情况下,小数前缀为“嗒嗒”
你可以写格式的扩展方法,你想返回,授予您需要使用扩展方法,而不是的ToString()