對委託的一些短淺理解

2022-02-16 06:48:50 字數 1411 閱讀 2543

有這麼乙個功能,是根據不同的人來說不同的「早上好」。如果是按照以前的方法,我會這麼做。

如:

#region 老辦法 

public

static

void sayhi(string

name, peopletype type)

", name);

}else

if (type ==peopletype.american)

", name);}}

#endregion

#region 引數

public

enum

peopletype

#endregion

思考:1、如果以後需要進行修改,還需要重新修改整個sayhi方法,有可能還會對其他地方有影響。

2、如果需要再新增乙個英國版的早上好,更得需要新增很多**,且容易對其他地方有影響。

*******************************經過改良的方法***********************

1、先宣告乙個帶引數的委託

public

delegate

void sayhihandler(string name);

然後再新建乙個類,其中有如下幾個方法:

public

class

greeting

public

static

void sayhichinese(string

name)

", name);

}public

static

void sayhiamerican(string

name)

", name);

}

#endregion

#region 引數

public

enum

peopletype

#endregion

}

經過委託,可按如下呼叫

sayhihandler sayhis = new

sayhihandler(greeting.sayhichinese);

sayhis("張旭

");sayhihandler sayamrican = new

sayhihandler(greeting.sayhiamerican);

sayamrican(

"mr.zxu

");

************************************優點*********************************

如果再解決以上的那個問題,只需要再新增乙個如sayhiamerican的方法即可。

對Linux inode的一些理解

檔名 inode device block 一 inode是什麼?理解inode,要從檔案儲存說起。檔案儲存在硬碟上,硬碟的最小儲存單位叫做 扇區 sector 每個扇區儲存512位元組 相當於0.5kb 作業系統讀取硬碟的時候,不會乙個個扇區地讀取,這樣效率太低,而是一次性連續讀取多個扇區,即一次...

對棧的一些理解

之前總結過一篇有關函式棧幀的部落格 函式棧幀以及呼叫約定相關的一些總結 但是感覺自己還是有一點知識點沒有弄懂,今天中午跟郭哥吃過飯一起 有關殼的問題的時候,順便把這個問題請教了一下郭哥,終於弄明白了,在此要特地感謝他,這裡把一些心得體會寫出來 先看一幅圖 選自ida權威指南 注意圖中是基於esp的棧...

對EK的一些理解

首先是網路流問題的提出 乙個源點,乙個匯點,不斷又源點向匯點輸送,其中路徑上有最大速度,求匯點收貨的最大速度是多少。在求之前可以先模擬一下過程如果源點現在只能出乙個單位的貨,那麼他會找乙個未達到最大速度的路進行運輸,接著我們不斷將運輸的量放大,即不斷地從起點開始尋找增廣路,每次都對其進行增廣,直到源...