Using "culture" in CodeProvider?

本文关键字:quot CodeProvider culture Using in | 更新日期: 2023-09-27 18:11:36

我正在使用VBCodeProvider,但我的问题也适用于CSharpCodeProvider。

用下面的代码:

Dim d As Decimal = 1.23

在丹麦,我们换。然后,-这将是:

Dim d As Decimal = 1,23

是否可以告诉VBCodeProvider或CSharpCodeProvider在运行代码时使用文化(丹麦语)?

感谢

更新:

Like I can do this…

.ToString("C2", System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"))

我想做这样的事情…

Dim code = "Return 1,23 * 1,23"
Dim cp As VBCodeProvider = New VBCodeProvider
Dim params As CompilerParameters = New CompilerParameters
Dim results As CompilerResults
params.ReferencedAssemblies.Add("system.dll")
params.ReferencedAssemblies.Add("system.xml.dll")
params.ReferencedAssemblies.Add("system.data.dll")
params.ReferencedAssemblies.Add("System.Windows.Forms.dll")
params.CompilerOptions = "/t:library"
results = cp.CompileAssemblyFromSource(params, code, System.Globalization.CultureInfo.CreateSpecificCulture("da-DK"))

…所以我可以运行丹麦语格式的代码

Using "culture" in CodeProvider?

你不能为所欲为。

无论您的机器正在运行什么区域性,

Dim d As Decimal = 1,23

是无效的VB.Net。语言规范明确了这一点(我的重点):

2.4.3浮点字面值

浮点字面值是一个整型字面值后跟一个可选字面值小数点( ASCII句点)和尾号,还有一个可选以10为基数的指数。

必须使用.作为浮点字面值的小数点。你不能使用丹麦的小数点,就像法语程序员不能说

一样。
Dimensionné d Comme Nombre Décimal = 1,23

或者中文程序员可以说

尺寸 d 十進制數 壹點貳參

(向所有能读懂中文的人道歉,我使用了维基词典…)


我注意到我确实有一个模糊的记忆,曾经有一段时间,各种语言特定版本的Excel VBA确实存在!但那些日子早已一去不复返了。