Cha*_*hau 5 c# globalization methods culture
我有一个C#类有各种方法.我想en-US在这个类的所有方法中使用culture.我可以为特定班级设置文化吗?
背景:我有List<object>一些,有些object是数字,有些是字符串.我想用美国文化写的所有数字,但我不知道哪些是数字.这个object班ToString()似乎没有采取文化论证.
类是数据结构,而本地化字符串格式是行为.从代码/编译器的角度来看,这两件事与彼此无关,并且在"每个类"的基础上设置它是没有意义的.此问题属于使用该类的代码的范围,或类本身内部的代码.
每个线程设置全局文化信息(使用Thread.CurrentThread.CurrentCulture或CultureInfo.CurrentCulture).您可以做的一件事是在文化集/恢复中包装该类的每个方法.由于线程文化适用于所有目的的全局变量,如果您的类曾在其他地方调用过,这可能会出现问题.
最好的办法,如果你想指定你的类使用的一种文化,是只具有区域性的实例作为类属性使用,然后使用最字符串/数字格式功能的特定文化的重载.
class MyClass {
public CultureInfo Culture { get; set; }
public void GetSomeString() {
return new Int32().ToString(Culture);
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:仔细看看你的问题,我认为你想做的事情是这样的:
var lastCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US");
try {
// loop over list here
}
finally {
Thread.CurrentThread.CurrentCulture = lastCulture;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6012 次 |
| 最近记录: |