C 學習筆記 泛型委託Action和Fun

2022-03-04 18:42:47 字數 2707 閱讀 7137

**:

本節學習了泛型委託action和fun兩類特殊的委託,這兩個特殊的委託是dot framewrok自帶的。結合lambda表示式,可以在寫程式時,簡潔**和提高編碼效率。

(一)action和fun兩個委託的不同點:

action只能委託必須是無返回值的方法

fun只是委託必須有返回值的方法

(二)**演練

usingsystem;

usingsystem.collections.generic;

usingsystem.linq;

usingsystem.text;

usingsystem.windows.forms;

//方法一:顯式宣告了乙個委託,並將對 例項方法的引用分配給其委託例項。

public delegatevoidshowname();

public delegatevoidshownamewithparameter(stringname);

public delegatevoidshowage(intage);

public delegatevoidshownameandage(stringname, intage);

public delegateintreturnname(stringname);

namespaceactiondemo

set}

privateintinstanceage;

publicintinstanceage

set}

publicperson(stringname,intage)

publicvoiddisplayname()

",this.instancename);

}publicvoiddisplayname(stringname)

",name);

}

publicvoiddisplayage(intage)

",age);

}publicvoiddisplaynameandage(stringname, intage)

and age: ",name,age));

}publicintgetagebyname(stringname)

else}}

classprogram

staticvoidmain(string args)

{#regionaction相關

person person =newperson("joetao",21);

//非泛型委託

//showname showname = new showname(name.displayname);

//另一種寫法

showname showname =person.displayname;

showname();

shownamewithparameter shownamewithparameter =person.displayname;

shownamewithparameter(person.instancename);

showage showage =person.displayage;

showage(person.instanceage);

shownameandage shownameandage =person.displaynameandage;

shownameandage(person.instancename, person.instanceage);

string>actionshowname1 =person.displayname;

actionshowname1(person.instancename);

actionactionshowage =person.displayage;

actionshowage(person.instanceage);

actionactionshownameandage =person.displaynameandage;

actionshownameandage(person.instancename, person.instanceage);

actionactionshowname1 =person.displayname;

actionshowname1(person.instancename);

actionactionshowage =person.displayage;

actionshowage(person.instanceage);

actionactionshownameandage =person.displaynameandage;

actionshownameandage(person.instancename, person.instanceage);

string>actionshowname1 =person.displayname;

actionshowname1(person.instancename);

actionactionshowage =person.displayage;

actionshowage(person.instanceage);

actionactionshownameandage =person.displaynameandage;

actionshownameandage(person.instancename, person.instanceage);

Action泛型委託

描述 封裝乙個方法,該方法只採用乙個引數並且不返回值.語法 public delegate void action t arg t 引數型別 此委託封裝的方法的引數型別 arg 引數 此委託封裝的方法的引數 備註 通過此委託,可以將方法當做引數進行傳遞.其他形式 public delegate vo...

C 學習筆記 泛型委託Action和Fun

本節學習了泛型委託action和fun兩類特殊的委託,這兩個特殊的委託是dot framewrok自帶的。結合lambda表示式,可以在寫程式時,簡潔 和提高編碼效率。一 action和fun兩個委託的不同點 action只能委託必須是無返回值的方法 fun只是委託必須有返回值的方法 二 演練 us...

C 委託基礎 泛型委託Action

c 委託基礎系列原於2011年2月份發表在我的新浪部落格中,現在將其般至本部落格。為了方便開發,net基類庫針對在實際開發中最常用的情形提供了幾個預定義好的委託,這些預定義委託用得很廣,比如在編寫lambda表示式和開發平行計算程式時經常要用到他們 對於函式返回值為空的情形,可以使用action泛型...