c 擴充套件方法

2021-09-17 03:51:17 字數 648 閱讀 4308

擴充套件方法,首先是一種方法,它可以用來擴充套件已定義型別中的方法成員。比如,乙個canvas類,你想給它新增乙個畫鴨子的方法,

drawduck(),怎麼辦?那你只有自己定義乙個customcanvas類,繼承canvas,在customcanvas類中定義這個畫鴨子的方法。

現在你有了擴充套件方法,就不用了這麼麻煩了。定義乙個在擴充套件方法

public static class canva***tern

new pen(brushes.red, 2);

......// 畫鴨子

}}

使用的時候 直接   canvas mycanvas = new canvas();

mycanvas.drawduck();//即可畫出鴨子

注意:(1)擴充套件方法必須在乙個非巢狀、非泛型的靜態類中定義;

(2)它至少要有乙個引數;

(3)第乙個引數必須加上this關鍵字作為字首(第乙個引數型別也稱為擴充套件型別,即指方法對這個型別進行擴充套件);

(4)第乙個引數不能使用任何其他的修飾符(如不能使用ref、out等修飾符);

(5)第乙個引數的型別不能是指標型別。

這些規則都是硬性規定,無論方法違反了哪一條,編譯器都可能會報錯,或認為它不是乙個擴充套件方法。

C 擴充套件方法

c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...

C 擴充套件方法

c 語言從3.0開始增加了乙個很特別的功能 擴充套件方法。那麼擴充套件方法起什麼作用呢?很多時候我們想為已經存在的類擴充套件某些功能,而又沒有必要去繼承該類,甚至有時候這個類根本就不允許繼承,如string類,這時候就可以使用擴充套件方法來為其擴充套件功能。下面舉例說明 一 我們建立乙個類庫如下 c...

C 擴充套件方法

使用 net 3.0之後,我一直都覺得有種方法很奇怪,這種方法在一般的方法前面多了乙個藍色的向下箭頭。這種方法其實是擴充套件方法,這種擴充套件方法不需要去修改原類。class program public static class extendfunction 例子中我定義了乙個擴充套件方法,這個方...