c#3.0引入了擴充套件方法的概念,乍一聽起來不是很好理解,我們舉乙個簡單的例子:
有乙個業務場景,需要頻繁地判斷乙個字串內是否包含阿拉伯數字,字串的contains方法是沒有辦法實現的,那麼可以考慮寫乙個公共方法,封裝乙個方法隨時來判斷,類似下面這樣的:
public
static
class
stringextension
}
呼叫的時候就要這樣:
static
void
main
(string
args)
但是這樣寫比較麻煩,每次都要通過類名加方法名來進行呼叫,這個時候擴充套件方法就派上用場了,可以使用下面的**實現:
public
static
class
stringextension
}
這段**在方法的傳入引數前多了乙個this,這樣編譯器會把該方法作為string的擴充套件方法,就可以直接使用字串的例項直接呼叫了,想下面這樣:
static
void
main
(string
args)
這樣是不是方便很多了呢?
在c#的framework裡面也使用了大量的擴充套件方法,比如any方法,也可以實現和上面相同的功能:
static
void
main
(string
args)
總的來說,當我們在使用framework或者第三方的類庫的時候,發現對某個類的相同操作很頻繁,就可以考慮為該型別新增擴充套件方法,方便使用。 c 擴充套件方法的使用
擴充套件方法使您能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。你一定很疑問什麼是擴充套件方法!什麼是擴充套件方法?回答這個問題之前,先看看我們一般情況下方法的呼叫。類似這樣的通用方法你一定寫過 static void main string args 將字串轉...
C 擴充套件方法的使用
c 擴充套件方法可以在不繼承原有類的基礎上,為原有類新增方法,c 擴充套件方法可以合併到要原有類的例項上,擴充套件方法需要定義為靜態方法,並且第乙個引數必須為要擴充套件型別的當前例項 引數前加this關鍵字 public static class extendstring 首先定義乙個靜態類,定義乙...
C 擴充套件方法的使用
譯文鏈結 c 在 3.0 版本中提供了對 擴充套件方法 的支援,擴充套件方法常用於給乙個已存在的類新增新的方法從而擴充套件該類的功能,最關鍵的是 你不需要在現存類中派生乙個子類,你也不需要破壞性的修改類的現有 骨架,更談不上重新編譯了,擴充套件方法能夠提供 的可讀性同時又可以擴充套件類的功能。net...