LinQ 擴充套件方法

2021-06-22 03:15:40 字數 1434 閱讀 3680

本節主要講解擴充套件方法,涉及

linq

的具體知識不多。

.net framework

為程式設計人員提供了很多的類,很多的方法,但是,不論

.net framework

在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,例如:你想讓字串物件具有topascal方法,含義就是將字串轉化為

pascal

格式,並返回,我們知道,

.net framework

提供的string

類中並沒有為我們提供相應的方法,此時,我們應該怎麼做才可以達到我們的目的呢?有人說可以繼承

string

類,這個不行,因為

.net framework

提供的類都是

finnal

類,最終類,不能被繼承,那麼,怎麼樣才可以解決這個問題呢?此時,就出現了擴充套件方法

為現有類提供一些額外的方法,這樣做的好處就是,原有類不需要重新編譯生成,只需要在程式中引入一些額外的

dll就可以了 為

string

類新增乙個

topascal

方法,實現將自己格式化為

pascal

格式的字串並返回

//擴充套件方法的定義

public static clas***traclass

}//擴充套件方法的使用

string strname="greenhill";

strname.topascal();//返回的結果為pascal格式的字串

解釋string:返回值的型別;

topascal:擴充套件的方法名;

this string:擴充套件所有類;

s:物件名;

注意:在使用

string

類的topascal

方法時,必須要在程式中引入

extraclass

類上面的

這種方式是沒有引數的寫法,那麼有引數的怎麼寫呢?有興趣的可以下去自己查查,相信在讀了這一篇部落格的基礎上,再學習擴充套件方法的其它具體的定性時,會變得非常輕鬆。

擴充套件方法是實現

linq

的基礎,因為

linq

的具體實現就是通過擴充套件方法實現的,也就是說

linq

就是往.net framework

的原有的一些類上新增了一些擴充套件方法,從形式來說,達到了一種通過使用不同物件的相同方法,實現一樣的目的。

在實際的應用中,為

.net framework

中的類擴充套件一些方法是不常用的,最起碼我現在在實際的專案中沒用過,所以,對於上面擴充套件方法的描述的需求,我們要站在另乙個高度看,也就是說,擴充套件方法是微軟為了引入

linq

而作的工作,擴充套件方法的真正目的是為了

linq

LinQ 擴充套件方法

本節主要解說擴充套件方法,涉及 linq 的詳細知識不多。net framework 為程式設計人員提供了非常多的類,非常多的方法,可是,不論 net framework 在類中為我們提供了多麼多的方法,有時候仍然不能滿足我們的需求,比如 你想讓字串物件具有topascal方法,含義就是將字串轉化為...

Linq擴充套件方法

如果要擴充套件linq查詢方法集,只需要為ienumerable擴充套件方法。第一種 擴充套件聚合方法,類似已有python基礎教程的max min,可以給具體型別擴充套件,也可以給泛型擴充套件。using system using system.collections using system.c...

擴充套件方法和LINQ

以前一直看到方法列表中有種方法的圖示是 普通方法的紅立方體右邊還有個箭頭 就像這樣 原來這種方法就是擴充套件方法 擴充套件方法不能訪問它擴充套件的型別的私有成員。呼叫擴充套件方法只是呼叫靜態方法的一種新語法 public static classa s class program 這樣就擴充套件了s...