C 擴充套件方法

2021-10-21 20:05:33 字數 1956 閱讀 5622

擴充套件方法必須是靜態方法在靜態類中,且至少有乙個引數,該引數資料型別前需用this修飾,並且需要與呼叫者的資料型別一致。 使用時只需用引數的例項化物件.方法即可

使用擴充套件方法能夠向現有物件新增方法,而無需建立新的派生型別、重新編譯或以其他方式修改原始型別,並且是linq的重要組成部分

demo:

//main方法

console.

writeline

("****************************************");

string name =

"小仙女"

;//輸出'小仙女mm'

console.

writeline

(name.

test()

);//輸出'小仙女妹妹'

console.

writeline

(name.

test1

("妹妹"))

;//資料來源

list studentlist =

newlist

<

student

>()

,new

student()

,new

student()

,new

student()

};//linq

var list1 = studentlist.

getstudents1

(s =

> s.age <=20)

;foreach

(var item in list1)

,name: ,age: ");

}var list = studentlist.

getstudents()

;foreach

(var item in list)

,name: ,age: ");

} console.

writeline

("****************************************");

student student =

newstudent()

; console.

writeline

(student.

studenttest()

);**

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

****

***//靜態類extendmethod

public

static

class

extendmethod

}return list;

}public

static list

getstudents

(this list students)

return list;

}public

static

bool

studenttest

(this

student student)

public

static

string

test1

(this

string name,

string cc)

public

static

string

test

(this

string name)

}

C 擴充套件方法

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

C 擴充套件方法

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

C 擴充套件方法

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