LINQ學習系列 1 3 擴充套件方法

2022-02-09 06:43:55 字數 1139 閱讀 5578

這篇內容繼續接著昨天的lambda表示式的原始碼繼續下去。昨天講了lambda表示式,此篇講擴充套件方法,這兩點都是linq帶來的新特性。

一.擴充套件方法介紹

廢話不多說,先上原始碼截圖:

上圖中getmemorycount就是乙個擴充套件方法,從上圖的標註可以得出以下幾點資訊:

2.擴充套件方法和被包含的類必須是靜態的

3.被包含的類不能是泛型類

深入總結:

1.擴充套件方法可以接收任意多個引數,不過第乙個引數必須用this修飾。

2.擴充套件方法的基礎是物件, 比如這個物件突然想額外加乙個方法,那可以用擴充套件方法,第乙個引數就是以這個物件為基礎的引數。(擴充套件方法的基石是物件)

.擴充套件方法的智慧型感知

當你擴充套件方法**編寫完成,並且沒有問題的時候。你呼叫此物件的擴充套件方法時,ide會有智慧型感知,見下圖箭頭處:

在上圖中,也可以看到擴充套件方法的圖示也不一樣,是帶有藍色下墜標示。

.擴充套件方法的鏈式語句

在上圖可以看到,擴充套件方法帶來的好處是可以進行語句的鏈式操作。

.擴充套件方法和正常方法的衝突

先上原始碼:

從上圖可以看到,在物件中沒有找到對應的方法,就會去執行擴充套件方法(object是所有的基類)。執行結果:

源**:linq學習系列-----1.3擴充套件方法(原始碼.rar

學習Linq之擴充套件方法

什麼是擴充套件方法 擴充套件方法允許開發人員往乙個現有的clr型別的公開契約 contract 中新增新的方法,而不用生成子類或者重新編譯原來的型別。擴充套件方法有助於把今天動態語言中流行的 對duck typing的支援之靈活性,與強型別語言之效能和編譯時驗證融合起來。擴充套件方法是可以通過使用例...

LinQ 擴充套件方法

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

LinQ 擴充套件方法

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