個人學習 C 委託

2022-03-24 18:22:42 字數 2178 閱讀 9965

舉個不是很恰當的例子:某個檢測系統,檢測到某國有某個工廠出現故障,需要及時通知工廠進行故障檢修,第n天,故障修復,反響不錯,各個工廠爭先恐後的想要附加這個功能,針對這個不恰當的案例我們寫乙個案例:

public

static

class

delegateservice

return

fullname;

}//////

根據簡稱獲取企業名稱(勝利油田)

/// private

static

string getslytnamebyshortname(string

shortname)

//////

根據簡稱獲取企業名稱(中**田)

/// private

static

string getzyytnamebyshortname(string

shortname)

}

string name = "

slyt";

string fullname =delegateservice.getcompanybyname(name);

console.writeline($

"不使用委託: 故障了,請檢修

");

public

static

string getname(string name, *** companydelegate)

聰明的你應該已經想到了,現在是委託該出場的時候了,但講述委託之前,我們再看看companydelegate引數所能代表的 getslytnamebyshortname()和getzyytnamebyshortname()方法的簽名:

public

static

string getslytnamebyshortname(string

shortname)

public

static

string getzyytnamebyshortname(string shortname)

本例中委託的定義:

//

定義委託

public

delegate

string companydelegate(string name);

可以與上面getslytnamebyshortname()方法的簽名對比一下,除了加入了delegate關鍵字以外,其餘的是不是完全一樣?

現在,讓我們再次改動getname()方法,如下所示:

public

static

string getname(string

name, companydelegate companydelegate)

下面我們看一下完成的**:

namespace

study.consolecore

//////

根據簡稱獲取企業名稱(勝利油田)

/// public

static

string getslytnamebyshortname(string

shortname);}

//////

根據簡稱獲取企業名稱(中**田)

/// public

static

string getzyytnamebyshortname(string

shortname);}

}}

string name = "

slyt";

companydelegate company =delegateservice.getslytnamebyshortname;

//第一種寫法

string fullnamedelegate1 =delegateservice.getname(name, company);

console.writeline($

"使用委託1:");

//第二種寫法

string fullnamedelegate2 =company(name);

console.writeline($

"使用委託2:

");

個人學習 C 反射

反射是.net中的重要機制,通過反射,可以在執行時獲得程式或程式集中每乙個型別 包括類 結構 委託 介面和列舉等 的成員和成員的資訊。有了反射,即可對每乙個型別瞭如指掌。另外我還可以直接建立物件,即使這個物件的型別在編譯時還不知道。二 反射的命名空間及主要類的用途 system.type下 type...

C語言個人學習筆記

在匯程式設計序中,乙個函式的開頭常常見到以下 8048cbd 83 ec 18 sub 0x18,esp這句話的目的是分配棧幀。棧幀中存放的是程式中的區域性變數。在windows的編譯器cl.exe中這些棧幀中的值最初會被初始化為0xcc,這也是為什麼vc 在陣列越界或訪問未賦值的記憶體時列印 燙燙...

個人學習C語言流程

2 自己看c程式設計和明解c等相關書籍入門學習 3 自己多敲 一定要多敲 4 積極與志同道合的人互相學習一起努力。5 如若發現問題,先自己想辦法解決,實在解決不了,就請教自己認識的大佬們。6 學習時長 打算每週花費至少15h在這個上面 不耽誤目前的工作的情況下 希望能夠通過自己的學習,進入乙個大廠後...