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"))
…所以我可以运行丹麦语格式的代码
你不能为所欲为。
无论您的机器正在运行什么区域性,
Dim d As Decimal = 1,23
是无效的VB.Net。语言规范明确了这一点(我的重点):
2.4.3浮点字面值
浮点字面值是一个整型字面值后跟一个可选字面值小数点( ASCII句点)和尾号,还有一个可选以10为基数的指数。
必须使用.
作为浮点字面值的小数点。你不能使用丹麦的小数点,就像法语程序员不能说
Dimensionné d Comme Nombre Décimal = 1,23
或者中文程序员可以说
尺寸 d 十進制數 壹點貳參
(向所有能读懂中文的人道歉,我使用了维基词典…)
我注意到我确实有一个模糊的记忆,曾经有一段时间,各种语言特定版本的Excel VBA确实存在!但那些日子早已一去不复返了。