gpt4 book ai didi

c# - 如何通过表达式模拟字符串+字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:47 24 4
gpt4 key购买 nike

如何通过 C# 表达式模拟字符串 + 字符串表达式。 Expression.Add 方法不起作用。

string + string expression like

“111”+“222”=“111222”

谢谢

最佳答案

您需要拨入string.Concat (C# 编译器将字符串连接转换为对 string.Concat 的调用)。

var concatMethod = typeof(string).GetMethod("Concat", new[] { typeof(string), typeof(string) });    

var first = Expression.Constant("a");
var second = Expression.Constant("b");
var concat = Expression.Call(concatMethod, first, second);
var lambda = Expression.Lambda<Func<string>>(concat).Compile();
Console.WriteLine(lambda()); // "ab"

其实,如果你写

Expression<Func<string, string string>> x = (a, b) => a + b;

并在调试器中检查它,您会看到它生成一个 BinaryExpression (带有 Methodstring.Concat(string, string) ),而不是 MethodCallExpression .因此编译器实际上使用@kalimag 的答案,而不是我的。但是,两者都可以。

关于c# - 如何通过表达式模拟字符串+字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55182773/

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