Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重写区域性的默认格式提供程序_C#_Asp.net_.net_Globalization_Cultureinfo - Fatal编程技术网

C# 重写区域性的默认格式提供程序

C# 重写区域性的默认格式提供程序,c#,asp.net,.net,globalization,cultureinfo,C#,Asp.net,.net,Globalization,Cultureinfo,我正在寻找一种覆盖默认decimal.ToString(“c”)方法调用的方法。我已经编写了自定义格式提供程序,当我执行类似于decimal.ToString(myprovider)的操作时,它可以工作,但是有没有办法覆盖默认提供程序,通过自定义提供程序路由decimal.ToString(“c”)调用?请注意,这不是关于数字格式的事情,它是有效的,我知道我可以覆盖它。它是关于使用数字格式信息并将其插入输出的实际格式化程序。最终目标是在格式化时对值进行一些计算 谢谢我可以建议您使用您的自定义格式

我正在寻找一种覆盖默认decimal.ToString(“c”)方法调用的方法。我已经编写了自定义格式提供程序,当我执行类似于decimal.ToString(myprovider)的操作时,它可以工作,但是有没有办法覆盖默认提供程序,通过自定义提供程序路由decimal.ToString(“c”)调用?请注意,这不是关于数字格式的事情,它是有效的,我知道我可以覆盖它。它是关于使用数字格式信息并将其插入输出的实际格式化程序。最终目标是在格式化时对值进行一些计算


谢谢

我可以建议您使用您的自定义格式提供程序,类似这样的程序应该可以解决您的问题

class CustomFormatter : IFormatProvider, ICustomFormatter{}

string.Format(new CustomFormatter(), "{0}", yourDecimalValue)
如果要指定一些附加参数,可以将它们传递给CustomFormatter。 试着使用这个代码,我想你会找到你想要的

谢谢,
Kiryl实现这一点的一种方法是编写自定义提供程序,然后更改当前线程的数字格式提供程序。这会将所有的
decimal.ToString(“c”)
路由到您的自定义提供程序,并根据您的代码进行格式化。

我使用的是自定义提供程序,是的,它们是您所说的工作方式。问题是我试图保留一些使用ToString调用的旧代码,所以这不是可接受的解决方案。