C#中的Expression> expression 怎么理解?

有的时候在使用一些C#方法的时候会看到要求输入Expression<Func<T1,T2>> expression 这个参数

怎么去理解呢?

Func是表示的委托类型,接受T1类型的参数,然后返回T2类型的值,

而Expression代表的是表达式类型

不妨这么去理解Expression<Func<int,double>> expression

Expression是一个表达式,那么就写成lambda表达式

这么这个Lambda表达式接受int参数,然后返回double类型就可以这么写:

(num)=>(double)num

这样就构成了一个expression,可以传递到方法中。