这篇文章主要介绍了C# CultureInfo之常用InvariantCulture案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
1、CultureInfo的InvariantCulture的作用
(1)、CultureInfo使整个.NET Framework更加人性化,因为这可以使同一个数据适应不同地区和文化,这样当然满足处于不同地区和文化的用户。但前提是数据给“人”看,如果这些数据用于计算机之间的传输,即给“机器”看,这样的多文化处理反而不妥,造成同一个数据的不同展现形式,尤其是读写两方的文化地区不同时,数据可能根本无法被正常读取或者产生潜在bug,因此这里,正是InvariantCulture的用武之地。
(2)、当进行数字,日期时间,字符串匹配时,都会进行CultureInfo的操作,也就是不同的CultureInfo下,这些操作的结果可能会不一样。这里要介绍一下非常容易被忽视InvariantCulture。
2、使用场景
你编写一个程序,要向数据中心服务器传递一些时间数据,你会怎么写?直接DateTime.ToString()?那你就大错特错了,下面用代码,举个非常形象的例子。在一个控制台里,模拟数据中心,然后放出多个线程,模拟客户端程序传递数据。
static readonly string[] CultureSources = { "en-us", "zh-cn", "ar-iq", "de-de" };
static readonly Random Ran = new Random(Environment.TickCount);
static void Main()
{
Console.WriteLine("数据中心开始接受客户端数据:");
for (int i = 0; i < CultureSources.Length; i++)
ThreadPool.QueueUserWorkItem(Client, i);
Console.ReadKey(true);
Console.WriteLine("");
Console.WriteLine("数据中心:…………");
}
static void Client(object obj)
{
int id = (int)obj;
Thread.Sleep(Ran.Next(1000));
CultureInfo cul = CultureInfo.GetCultureInfo(CultureSources[id]);
Thread.CurrentThread.CurrentCulture = cul;
Console.WriteLine("某客户端操作系统语言设置{0}\n传送数据:{1}\n", cul.DisplayName, new DateTime(1990, 10, 27).ToShortDateString());
}
Console.WriteLine("某客户端操作系统语言设置{0}\n传送数据:{1}\n", cul.DisplayName, new DateTime(1990, 10, 27).ToString(CultureInfo.InvariantCulture.DateTimeFormat.ShortDatePattern, CultureInfo.InvariantCulture));
ok,这样不管客户端运行在什么语言环境下,输出的时间格式都是统一的,方面数据中心服务器对数据做后续处理。这样所有的输出结果都保持一致了。
到此这篇关于C# CultureInfo之常用InvariantCulture案例详解的文章就介绍到这了,更多相关C# CultureInfo之常用InvariantCulture内容请搜索得得之家以前的文章希望大家以后多多支持得得之家!
本文标题为:C# CultureInfo之常用InvariantCulture案例详解
- Unity3D实现渐变颜色效果 2023-01-16
- .NET CORE DI 依赖注入 2023-09-27
- C# 使用Aspose.Cells 导出Excel的步骤及问题记录 2023-05-16
- Unity Shader实现模糊效果 2023-04-27
- user32.dll 函数说明小结 2022-12-26
- Oracle中for循环的使用方法 2023-07-04
- WPF使用DrawingContext实现绘制刻度条 2023-07-04
- 在C# 8中如何使用默认接口方法详解 2023-03-29
- c# 模拟线性回归的示例 2023-03-14
- 如何使用C# 捕获进程输出 2023-03-10