构建简单函数表达式

本文关键字:表达式 函数 简单 构建 | 更新日期: 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)

其中xTin类型,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

这就是我想要的。谢谢你的时间:)