构建简单函数表达式
本文关键字:表达式 函数 简单 构建 | 更新日期: 2023-09-27 18:03:06
我想为这样的东西构建表达式:
x => DoSomething(x)
这是可能的吗?我怎么才能做到这一点?
你可以这样做:
using System;
using System.Linq.Expressions;
public class Program
{
public static void Main()
{
Expression<Func<string, string>> func = (x) => DoSomething(x);
Console.WriteLine(func.ToString());
}
public static string DoSomething(string s)
{
return s; // just as sample
}
}
这里是工作小提琴- https://dotnetfiddle.net/j1YKpM它将被解析,Lambda将被保存为Expression
您是指Func<Tin,Tout>
委托吗?
基本上你需要一个Func<Tin,Tout>
Func<Tin,Tout> func = x=> DoSomething(x)
其中x
为Tin
类型,DoSomething
返回Tout
类型
也许这个问题有点不清楚。这就是我的意思:
var arg = Expression.Parameter(pluginType, "x");
var method = GetType().GetMethod("DoSomething");
var methodCall = Expression.Call(method, arg);
var lambda = Expression.Lambda(delegateType, methodCall, arg); // I was looking for this
这就是我想要的。谢谢你的时间:)