閱讀原始碼的時候,發現某個物件呼叫了沒有在它的類中定義的方法,這是怎麼回事呢?
原來使用了擴充套件方法。
給c#內建物件或自定義物件新增擴充套件方法,那麼在同乙個命名空間下面定義的所有的該類物件都可以直接呼叫此擴充套件方法。
使用時需要注意:
(1)擴充套件方法不能和呼叫的方法放到同乙個類中
(2)第乙個引數必須要,並且必須是this,這是擴充套件方法的標識。如果方法裡面還要傳入其他引數,可以在後面追加引數
(3)擴充套件方法所在的類必須是靜態類
(4)最好保證擴充套件方法和呼叫方法在同乙個命名空間下
新增乙個getnotnullstr的擴充套件方法:
public
static
string
getnotnullstr
(this
string strres)
在main函式中呼叫:
static
void
main
(string
args)
定義person類:
public
class
person
public
int age
}
定義乙個person類的擴充套件方法:
public
static
class
personextensions
}
呼叫:
static
void
main
(string
args)
C 簡單的擴充套件方法
首先我們建立乙個控制台程式 第一步 我們建立乙個類userinfo public class userinfo public string upwd public string uage 第二步 建立乙個擴充套件方法類 public static class unameex public stati...
c 擴充套件方法的使用
擴充套件方法使您能夠向現有型別 新增 方法,而無需建立新的派生型別 重新編譯或以其他方式修改原始型別。你一定很疑問什麼是擴充套件方法!什麼是擴充套件方法?回答這個問題之前,先看看我們一般情況下方法的呼叫。類似這樣的通用方法你一定寫過 static void main string args 將字串轉...
C 擴充套件方法的使用
c 擴充套件方法可以在不繼承原有類的基礎上,為原有類新增方法,c 擴充套件方法可以合併到要原有類的例項上,擴充套件方法需要定義為靜態方法,並且第乙個引數必須為要擴充套件型別的當前例項 引數前加this關鍵字 public static class extendstring 首先定義乙個靜態類,定義乙...