擴充套件方法能給類新增方法,但是不改變原來類的任何內容。原來的類也不需要任何編譯的過程
using system;
using system.collections.generic;
using system.linq;
using system.text;
namespace 擴充套件方法
}//擴充套件方法所在的類必須是靜態類,且該擴充套件方法只能是靜態方法
internal
static
class clas***tension
console.writeline(math.sqrt(temp).tostring());}}
}
擴充套件方法必須在乙個非巢狀、非泛型的靜態類中定義
擴充套件方法必須是乙個靜態方法
擴充套件方法至少要有乙個引數
第乙個引數必須附加this關鍵字作為字首
第乙個引數不能有其他修飾符(比如ref或者out)
第乙個引數不能是指標型別
跟前面提到的幾個特性一樣,擴充套件方法只會增加編譯器的工作,不會影響效能(用繼承的方式為乙個型別增加特性反而會影響效能)
如果原來的類中有乙個方法,跟你的擴充套件方法一樣(至少用起來是一樣),那麼你的擴充套件方法獎不會被呼叫,編譯器也不會提示你
擴充套件方法太強大了,會影響架構、模式、可讀性等等等等….
C 擴充套件方法
c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...
C 擴充套件方法
c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...
C 擴充套件方法
使用 net 3.0之後,我一直都覺得有種方法很奇怪,這種方法在一般的方法前面多了乙個藍色的向下箭頭。這種方法其實是擴充套件方法,這種擴充套件方法不需要去修改原類。class program public static class extendfunction 例子中我定義了乙個擴充套件方法,這個方...