C 內建的幾種委託詳解,lambda表示式的演變

2021-07-22 02:49:47 字數 1182 閱讀 9312

系統內建的委託          

使用委託:方法的簽名要和委託一致。

1.system.func 代表有返回型別的委託

|--public delegate tresult func();

|--public delegate tresult func(t tag); 

注:輸入泛型引數-in最多16個,輸出泛型桉樹-out只有乙個

2.system.action 代表 ,無返回值的委託  public delegate void delegate();

3.system.predicate代表返回bool型別的委託,用作執行表示式

public delegate bool predicate(t obj);    

4.system.comparison代表返回int型別的委託  --用作比較兩個引數的大小

1.action無返回值的委託

static void delegate_action()

); p) => );

plist.foreach(p => console.writeline(p.name));

}static void fe(person p)

2.func有返回值的委託

static void delegate_func()

);

plist.where(p => p.age > 30).tolist().foreach(c => console.writeline(c.age));

}

3.predicate 返回bool型別的委託,用作執行表示式。

static void delegate_predicate()

); 演變 匿名委託很多東西都可以神略掉 delegate省略()裡面引數列表,如果沒有 括號也不可省略,=>

plist.findall((person p) => ); // => goes to 分隔符

演變->lambda表示式 括號、return 都去掉,只留乙個引數名字和方法體內容即可

plist.findall(p => p.age > 30); //p就是形參名了 編譯器根據findall來推理到plist集合中,那麼p就是person物件了

}

C 內建委託

三種內建委託 action 無返回值.func 尖括號最後乙個型別為返回值型別.必須要有返回值.predicate 返回型別為bool,必須有乙個引數,等價於func 注意,有返回值的委託中,如果有多個方法註冊在內,返回值是最後註冊的方法返回值,前面的同樣會執行,只不過返回值拿不到 using sy...

C 中常見的系統內建委託用法詳解

一般來說,c 在公共語言執行時 clr 環境中系統為我們內建了一些常用的委託,包括action類的委託 func類的委託 predicate委託 comparison l程式設計客棧t t 委託等等。以上這些委託的命名空間都是system,所屬程式集都是 mscorlib.dll,今天本文就來講一講...

C 內建 委託(1)

上篇文章簡單介紹了一下什麼是委託?但是每次都內定義乙個委託,感覺有些麻煩,所以微軟為了為人民服務,提出了內建委託,讓你直接使用就好。對於內建委託,最常用的主要有三個,action func predicate 對於內建,怎麼理解?其實就是少去了定義的過程。對於action 的出現是在.netfram...