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...