關於C 委託的一些學習筆記

2021-09-20 06:06:04 字數 2278 閱讀 3107

1.什麼是委託就是把方法作為引數傳給另乙個方法。委託說指向的函式,必須和函式具有相同的簽名(返回值和引數型別)

public delegate void delsayhi(string name);

class proglem

public static void test(string name,delsayhi del)

public static void saychinese(string name)

public static void sayenglish(string name)

}

以上方法好像沒有位元組用方法來得直接,那麼用委託到底好在**?

個人認為,委託的精華事lamda表示式,如下是乙個lamda表示式的小例子:

public delegate void sayhi(string name)

class progtam

;del(「張三」);

console.readkey();

}}

2.關於匿名函式(沒有函式名的函式):

類似這樣的用法叫做匿名函式:

object result=getmax(o,delegate(object o1,object o2));
以下是匿名函式的完整小例子:
class program

object result=getmax(o,delegate(objecto1,object o2));

console.writeline(result);

console.readkey();}}

public static object getmax(objectnums,compatrdel del)

;int max=getmax(nums,compare1);

console.writeline(max);

console.readkey();

string names=;

getmax(names,(string s1,string s2)=>)

console.readkey();

}public static t getmax(t nums,delcomparedel)

;deltwo del2=(string name)=>{};

delthree del3=(sting name)=>;

listlist=new list() ;

list.removeall(n=>n>4);

foreach(var item in list)

console.readkey();

}}

其中,有一種lamda表示式的特殊形式,要特別關注:

listlist=new list() ;

list.removeall(n=>n>4);

foreach(var item in list)

console.writeline(item);

5.委託的運用之窗體傳值:

在窗體1:

void showmsg(string str)

form2 fm=new form2(showmsg);

fm.show();

窗體一又方法,沒有值。

窗體二,有值沒有方法。

在窗體2中:

public delegate void deltest(string str);

public deltest _del;

public form2(deltest del)

private void button_click(objectsender,eventargs e)

通過這種方法可以實現在新窗體中控制父窗體中的控制項。

5.多播委託:(宅男我不由地想好了波多野結衣)

委託不僅僅能指向乙個函式,還能指向多個函式,這是通過duobo委託實現的。

如下事例子:

public delegate void deltest(string name);

class program

public static void t1()

public static void t2()

public static void t3()

public static void t4()

}

有一段時間沒寫了,之前在做一兩個老師布置的小專案,希望自己能夠堅持寫下去。

關於委託的一些知識

c 語言規範中提到 1 委託是引用乙個或多個方法的資料結構。對於例項方法,委託還可引用例項方法對應的物件例項。2 在 c 或 c 中與委託最接近的是函式指標,但函式指標只能引用靜態函式,而委託則既可以引用靜態方法,也可以引用例項方法。在後一種情況中,委託不僅儲存了乙個對該方法入口點的引用,還儲存了乙...

關於mybatis的一些學習筆記

properties定義在配置檔案中可以使用的變數 property name value 引用變數 檔名.properties 放與資料庫連線的資訊 儲存driver url username userpasswd鍵值成對儲存資訊 在properties標籤中 外部檔案優先於內部定義的proper...

關於框架的一些學習筆記

服務端n層架構體系中 mvc 今天才知道原來傳統的mvc中v是可以直接與m互動,m也做了些弱業務處理 mvp 所以至今為止公司用的都是mvp,就是m和v是完全分離的,少了p就相當於兩個孤島,mv互動必須通過p 在服務端n層架構體系中,mvc,mvp等架構思想僅是運用在表示層,而移動端的是應用在整個專...