C 中的擴充套件方法

2022-01-16 08:09:54 字數 1006 閱讀 1909

擴充套件方法使用

在實際專案中,通常會定義乙個靜態類,類中包含一些常用的操作方法(如字串處理,判斷字串是否是正確的**號碼或者email等),將這些方法定義為靜態方法,

c#3.0中引入擴充套件方法的概念,使用方式:在使用擴充套件方法的第乙個引數前面加this關鍵字。下面演示了擴充套件方法的簡單使用:

static

class

commonhelper

}class

program

,str2=

",str1,str2);

console.readkey();}}

變數str1,str2都能成功轉成大寫。從表面上看變數str有乙個transferstrtoupper方法,但本質上其仍然是靜態方法。

擴充套件方法本質

其實擴充套件方法本質並不是僅為了使**的寫法上發生改變,以上只是演示如何建立並使用擴充套件方法。

擴充套件方法的引入,能模擬為不同的類類建立例項方法。假設有這樣一種場景,如果實際專案中有乙個字串處理模擬如叫saylove,

但是該類不允許修改它的源**並且是個密封類(不允許被繼承),但是會用到該類裡的一些方法,比如方法sayloveyou,

當然這時你可以再定乙個類sayloveextend,在這個類裡的乙個方法expresslove將類saylove例項作為引數,這樣就可以使用類saylove內部的一些方法,能解決問題。

但如果能在類saylove的例項上呼叫新增的方法expresslove,而不是建立另乙個作用於它的類sayloveextend的例項,這樣看起來更加好看,彷彿這個新增的方法就是類saylove內部的方法。

下面是對該段文字描述的程式描述:

sealed

class

saylove

}static

class

sayloveextend

}class

program

}

程式輸出:

C 中的擴充套件方法

c 中的擴充套件方法用來為現有型別新增方法,以擴充套件現有的型別,這些型別可以是基本的資料型別 如int string等 也可以是自己定義的型別。擴充套件方法是通過指定關鍵字this修飾方法的第乙個引數而宣告的。擴充套件方法只可以宣告在靜態類中。以下為擴充套件基本型別string public st...

C 中的擴充套件方法

擴充套件方法的目的就是向乙個現有型別中新增方法,現有型別可以是已存在的型別,比如int,string等資料型別,也可以是我們自定義的資料型別。擴充套件方法是一種特殊的靜態方法,但可以像擴充套件型別上的例項方法一樣進行呼叫。某個已經存在資料型別,該型別下的方法無法滿足我們的需求,這個時候就需要我們自己...

C 中的擴充套件方法

這個特性是從.net3.5的時候開始出現的,是指在原有類中插入乙個方法,用於給原有類擴充套件新的功能的方法。給我的感覺就是有點類似於外掛程式的意思。比如下面的 1 namespace extendfunction 2 11 12static class extclass 13 18 19 雖然我上面...