C 擴充套件方法

2021-07-27 10:18:21 字數 687 閱讀 4342

擴充套件方法能給類新增方法,但是不改變原來類的任何內容。原來的類也不需要任何編譯的過程

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 例子中我定義了乙個擴充套件方法,這個方...