使用" culture"在CodeProvider中?

时间:2015-09-08 08:57:28

标签: c# vb.net

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

拿这段代码:

Dim d As Decimal = 1.23

在丹麦,我们改变了。而且, - 所以这将是:

Dim d As Decimal = 1,23

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

由于

更新

就像我可以做到这一点......

.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"))

...所以我可以用丹麦语格式运行代码。

1 个答案:

答案 0 :(得分:0)

你无法做你想做的事。

无论您的机器运行何种文化,

Dim d As Decimal = 1,23

无效VB.Net Language Specification很明显(我的重点):

  

2.4.3浮点文字

     

浮点文字是整数文字,后跟可选项   小数点( ASCII句点字符)和尾数,以及   可选的基数10指数。

必须使用.作为浮点文字中的小数点。你不能再使用丹麦小数点,而不是法国程序员可以说

Dimensionné d Comme Nombre Décimal = 1,23

或中国程序员可以说

尺寸 d 十進制數 壹點貳參

(向任何能阅读普通话的人道歉,我为此使用了维基词典......)

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