我刚刚在C#上进行了在线(非课程相关)测试,这个问题出现在我面前:
基于国家/地区的C#语言有什么不同吗?
答案 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
),部分基于地区(预安装的计算机,互联网......)