委託
action
func
總結委託的那些事
關於委託的基本定義,在很久之前的這篇文章中,有個簡單的介紹。稍微回顧一下。
委託是c#中型別安全的,可以訂閱乙個或多個具有相同簽名方法的函式指標上面介紹了,平時用委託的一般方式,先宣告委託,然後再去使用,有點麻煩,.net中有已經定義好的委託型別,可以拿來直接用。宣告委託的方式:delegate 返回值型別 委託型別名(引數)
例如:
1如果想使用該委託,需要乙個對應的方法。delegate
void say(string strcontent);
1簡單的呼叫:///2
///委託對應方法
3///
4///
5private
static
void chinesesay(string
strcontent)
6
1static
void main(string
args)
2
action委託有兩種方式:無引數無返回值的委託,有至少乙個最多16個的引數無返回值的泛型委託。
1action泛型委託根據輸入引數個數的不同,action委託有十六個過載//摘要: 2//
封裝乙個方法,該方法不具有引數並且不返回值。
3 [typeforwardedfrom("
system.core, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089")]
4public
delegate
void action();
用action改寫上面的例子,上面的例子中委託是無返回值有string型別的輸入引數,所以使用action的泛型版本。
1結果:class
program2歲了
", s);//
方式三8 sayhello("您好"
);9 sayname.invoke("
我叫wolfy");
10 iasyncresult result = sayage.begininvoke("
27", callback, "
愛好女"
);11
if(result.iscompleted)
1215
console.read();16}
1718
private
static
void
callback(iasyncresult ar)
19,我不搞基
",ar.asyncstate.tostring());21}
22///
23///
委託對應方法
24///
25///
26private
static
void chinesesay(string
strcontent)
2730 }
上面**中,列出了action泛型委託的使用方式,以及使用lambda的方式,action也可以使用匿名方法,選擇一種自己上手的來用即可。
如果要用有輸入引數,有返回值的委託,那麼func委託將滿足你的要求。
func泛型委託,可以沒有輸入引數,但必須有返回值。根據輸入引數的多少有17個過載。
in:輸入引數
out:輸出引數,也就是返回值。
乙個案例
輸入名字,年齡,性別,對年齡,性別,姓名進行修改後輸出。
1結果:public
class
person24
public
int age
5public
bool gender
6///
7///
重寫tostring方法,方便輸出結果
8///
9///
10public
override
string
tostring()
1114}15
class
program
16;//
lambda表示式方式
22 funcfunupdatename = delegate(person p2)//
匿名方法23;
27 person p = new person() ;
28 person result =funcupdateage(p);
29console.writeline(result.tostring());
30console.writeline(funcupdategender(p).tostring());
31console.writeline(funupdatename(p).tostring());
32console.read();33}
34static
person updateage(person p)
3539
40 }
func泛型委託,可以沒有輸入引數,但是必須有輸出引數。
action:無引數無返回值委託。
action:泛型委託,無返回值,根據輸入引數的個數不同有十六個過載。
func< out t>:無輸入引數,有返回值。
func:有輸入引數,有返回值,根據輸入引數個數不同,有十六個過載。
action和func中可以使用lambda和匿名方法處理方法體內邏輯。
(天太熱,人很躁,在你不知道做什麼的時候,不如靜下來對基礎進行查漏補缺,能掌握一點是一點,別總抱怨,總煩躁,就算你抱怨,煩躁,最後該完成的事還是你的,不多不減就在那裡,夏天這天氣,太煩躁,啥事都不做了嗎?難道敲**不是一件開心的事嗎?)
部落格版權:
C 基礎 Func和Action學習
委託 委託的那些事 關於委託的基本定義,在很久之前的這篇文章中,有個簡單的介紹。稍微回顧一下。委託是c 中型別安全的,可以訂閱乙個或多個具有相同簽名方法的函式指標 宣告委託的方式 delegate 返回值型別 委託型別名 引數 例如 1 delegate void say string strcon...
c 中Action和Func委託
泛型acion委託表示引用乙個void返回型別的方法,至多可以傳遞至16個引數型別,沒有泛型的action類可呼叫沒有引數的方法,如 class test static void main string args 泛型func委託表示引用帶返回型別的方法,至多可以傳遞16個引數型別和乙個返回型別,f...
C 委託變數Action和Func
c 中的委託 簡單來說,使用委託可以將多個方法繫結到同乙個委託變數,當呼叫此變數時,可以依次呼叫所有方法。action委託 1.action a printstring action可以指向乙個沒有返回值,也沒有引數的方法。actiona printstring action 還可以接受沒有返回值,...