gpt4 book ai didi

c# - 带有格式提供程序的 Expression.ToString()

转载 作者:太空宇宙 更新时间:2023-11-03 11:28:49 25 4
gpt4 key购买 nike

是否可以使用特定的区域性/格式选项将像 x => x + 1.5 这样的 lambda 表达式转换为字符串?我知道我能做到:

Expression<Func<double,double>> expr = x => x + 1.5;
string s = expr.Body.ToString();

但是对于某些应用程序语言设置,它给出的 s 等于 "x + 1,5"(用逗号而不是点)。 ToString() 似乎获取了当前的文化信息。

如何以文化不变的原始形式取回字符串?

最佳答案

有一种方法可以做到,但是真的很难看...只是暂时改变当前的文化:

var previousCulture = Thread.CurrentThread.CurrentCulture;
try
{
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Expression<Func<double,double>> expr = x => x + 1.5;
string s = expr.Body.ToString();
}
finally
{
Thread.CurrentThread.CurrentCulture = previousCulture;
}

关于c# - 带有格式提供程序的 Expression.ToString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8494858/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com