北美,亚洲,欧洲的C#有什么不同吗?

时间:2014-10-15 18:14:17

标签: c# .net region

我刚刚在C#上进行了在线(非课程相关)测试,这个问题出现在我面前:

基于国家/地区的C#语言有什么不同吗?

3 个答案:

答案 0 :(得分:4)

不,没有任何差异。只有一种语言规范。周期。

想象一下编程语言规范会发生什么变化,这取决于你所在的地区......

如果这在美国和欧洲有不同的含义怎么办:

decimal d = 1.500;

是1.5(一个半)还是1,500(一千五百)?

答案 1 :(得分:3)

根据文化,DateTime排版会有所不同。例如在美国,它会读取,对应于货币,对话框(YesNo按钮会有所不同等):

10/15/2014 8:16:08 PM

在法国,它会显示:

15/10/2014 20:17:08

示例(使用csharp交互式shell):

Mono C# Shell, type "help;" for help

Enter statements below.
csharp> using System.Threading;
csharp> using System.Globalization;
csharp> Console.WriteLine(DateTime.Now); 
10/15/2014 8:18:12 PM
csharp> Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
csharp> Console.WriteLine(DateTime.Now);                                
15/10/2014 20:18:46

简而言之,所有依赖于国家/文化/自然语言的设置都将在本地设置(如@joppiesaus所述,欧洲人使用逗号,其中美国人使用"小数点")。但编译器是统一的。

但请注意,这与C#本身无关。毕竟C#是具有确定性虚拟机的标准化语言。但是"环境"在其中运行,可以设置不同的默认值。

最后,正如@philippelhardy所指出的,有一些专利可能会导致问题。例如, Mono C#的克隆。虽然 Microsoft Silverlight 可以播放 DRM 受保护的媒体文件,但 Mono的Moonlight 却无法播放,因为微软并没有这样做许可他们的 PlayReader 。有关详细信息,请参阅here

答案 2 :(得分:3)

简短的回答是否定的。这是一种编程语言,我不明白为什么它在其他国家会有所不同。

长期答案是否定的,但存在一些差异(不是编程语言本身,而是思考)。 例如:我住在荷兰,所以电脑看到我就像我是荷兰人。如果我输入Convert.ToDouble(someString),则在美国.将分隔该号码,而在欧洲,,会分隔该号码。

这与程序运行的文化有关(CultureInfo),部分基于地区(预安装的计算机,互联网......)