擴充套件方法必須是靜態方法在靜態類中,且至少有乙個引數,該引數資料型別前需用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 例子中我定義了乙個擴充套件方法,這個方...