C 代表與聯合

2021-09-26 06:43:20 字數 1309 閱讀 9925

一. 代表

因為一些程式語言中可以用函式指標來進行訪問,所以代表(delegates)使得這一特定情況變得可能。與函式指標不同,代表是物件導向的,型別安全並且是可靠的。

代表是引用型別,它從公共基類:system.delegate派生出來。

乙個代表例項壓縮了乙個方法——乙個可呼叫的實體。對於靜態方法,乙個可呼叫實體由類和類中的靜態方法組成。

代表的乙個有趣而且有用的特性是它不知道或者不關心與它相關的物件的型別。物件所要做的所有事情是方法的簽名和代表的簽名相匹配。這使得代表很適合「匿名」呼叫。這是個很有用的功能。

定義和使用代表分為三步:宣告、例項化和呼叫。

用 delegate宣告語法來宣告代表。

例子:delegate

void

******delegate

();

宣告了乙個名為 ******delegate的代表,它沒有任何引數並且返回 void值。

例子:

class test

static void main()

}

建立了乙個 ******delegate例項,並且馬上就對它進行呼叫。

對於為乙個方法例項化乙個代表並且馬上呼叫它沒有什麼好說的,理由是它會比直接呼叫方法要簡單得 多。代表在匿名使用時會顯示它的用處。

例子:

void multicall(******delegate d, int count)

}

介紹了乙個方法 multicall,它重複呼叫 ******delegate。方法 multicall並不知道或這關心哪種型別方法是 ******delegate的目標方法,這種方法有什麼樣的可達性,或這些方法是靜態的還是非靜態的。所有關心的事情是目標方法的簽名是否與一致。

二. 聯合

聯合型別的宣告為乙個符號常數相關的組定義了乙個型別名稱。聯合應用於「多選擇」的場合,這裡運 行時間是由在編譯時所知道的固定的選擇數目所決定。

例子:

enum color

class shape

}}

介紹了乙個聯合 color和乙個使用這個聯合的方法。方法 fill的名稱使人很容易明白形狀可以用所給的 顏色中的一種進行填充。

因為使用聯合可以使得**更可讀還可以自歸檔,所以使用聯合比使用整數常數要好-當然,很多語言中通常沒有聯合。**的自歸檔特點也使得開發工具可以幫助編寫**的和進行一些其它的「設計者」 行為。例如,使用 color而不是 int作為引數型別,使得精確**編輯器可以給出 color的數值。

C 結構 聯合與列舉

8.1 結構 是任意型別元素的集合。8.1.1 結構布局 結構型別的物件可以被賦值,作為實參傳入函式,或者作為函式返回。struct readout 布局方式 1 4 4 1 4 sizeof readout 12 短長短的風格,剩餘空間未使用 struct readout 布局方式 4 2 4 s...

C 代表型別(delegate)

c和c 程式設計師看來,指標既是他們最強有力的工具之一,同時又給他們帶來了很多苦惱之處。因為指標指向的資料型別可能並不相同,比如你可以把int型別的指標指向乙個float型別的變數,而這時程式並不會出錯。而且,如果你刪除了乙個不應該被刪除的指標 比如windows中指向主程式的指標 程式就有可能崩潰...

走進聯合國丨CBK,民企實力的代表

走進聯合國,cbk,民企閃耀之星 經層層篩選,多方檢閱,實力考察,cbk,在眾多企業中,脫穎而出,受邀出席聯合國非洲周峰會。集團優秀 商楊登元等一行進軍聯合國,俞潤東對話聯合國非盟秘書長 作為中國優秀企業代表,俞潤東一行,深受聯合國非盟秘書長的密切關注。除友好的交談外,俞潤東對話聯合國非盟秘書長,毫...