Expression 和Func的區別

2021-07-23 20:08:10 字數 1040 閱讀 3337

1.expression>是表示式
//使用lambdaexpression構建表示式樹

expressionint, int, int, int>> expr = (x, y, z) => (x + y) / z;

console.writeline(expr.compile()(1, 2, 3));

2.func委託

封裝乙個具有乙個引數並返回 tresult 引數指定的型別值的方法。

public delegate tresult func(t arg)

型別引數

in t

此委託封裝的方法的引數型別

out tresult

此委託封裝的方法的返回值型別。

arg型別:t

此委託封裝的方法的引數。

返回值型別:tresult

此委託封裝的方法的返回值。

string mid = ",middle part,";

///匿名寫法

func anondel = delegate(string param)

;///λ表示式寫法

func lambda = param =>

;///λ表示式寫法(整形)

func lambdaint = paramint =>

;///λ表示式帶有兩個引數的寫法

func twoparams = (x, y) =>

;messagebox.show("匿名方法:"+anondel("start of string"));

messagebox.show("λ表示式寫法:" + lambda("lambda expression"));

messagebox.show("λ表示式寫法(整形):" + lambdaint(4).tostring());

messagebox.show("λ表示式帶有兩個引數:" + twoparams(10, 20).tostring());

Expression 與Func的區別

func是委託 delegate expression 是表示式 expression編譯後就會變成delegate,才能執行。比如 expression ex x x 100 funcfunc ex.compile 然後你就可以呼叫func func 5 返回 true func 200 返回 f...

函式指標,func與 func的區別

1.函式名,就是函式的首位址,那麼func與 func應該是不一樣的,偶然看到別人說兩種用法一樣,所以決定試一試。2.環境配置,vscode 模組 c c 0.29.0 編譯器 mingw,x86 64 8.1.0x86 64 8.1.0。3.如下 include include include v...

c 中Action和Func委託

泛型acion委託表示引用乙個void返回型別的方法,至多可以傳遞至16個引數型別,沒有泛型的action類可呼叫沒有引數的方法,如 class test static void main string args 泛型func委託表示引用帶返回型別的方法,至多可以傳遞16個引數型別和乙個返回型別,f...