LINQ 1 擴充套件方法

2021-09-26 10:13:20 字數 1033 閱讀 4949

2. 總感覺不是很好,要是看起來字串有乙個isemail方法多好呀。將isemail放到乙個單獨的類中,類宣告為static(靜態類),方法是靜態方法,並且在第乙個string上增加this。哇,string類「增加」isemail方法了,這只是假象,本質上仍然是靜態方法,只不過c#提供了這樣乙個便利給大家,擴充套件方法內部不能呼叫被擴充套件類的私有、protected的東西。

3. 宣告擴充套件方法的步驟:類必須是static,方法是static,第乙個引數是被擴充套件的物件(而且第乙個引數的型別必須是待擴充套件的資料型別的型別),前面標註this。呼叫擴充套件方法的時候,第乙個引數其實是.前面的物件。使用擴充套件方法的時候必須保證擴充套件方法類已經在當前**中using。

4. 將filter方法封裝為擴充套件方法。

1. 擴充套件方法:是linq的基礎,為後面學linq做鋪墊。

2. 什麼樣的類宣告為static方法,就是沒有用到任何的非static的字段、屬性。static成員不可以呼叫非static。static不用new就可以直接調,更方便。不僅方法和字段可以加static,類也可以加static 。

3. 靜態類不能被new。不能在靜態類中宣告非static成員(例項成員)。靜態類中不能寫非static成員。

4. 在string的型別定義時新增這個方法不也行嗎?正是因為微軟沒有提供這個方法,咱們才需要給它「增加」quotedstr方法。 

public static string readalllines(this stream stream)

return lines.toarray();}}

/// /// 將字串解析為列舉型別t

///

///

///

///

public static t parseenum(this string value)

public static int getint32(this sqldatareader reader, string colname)//擴充套件方法不能呼叫被擴充套件物件內部的私有成員,因為本質上還是外部呼叫。

查詢語言LINQ 1

查詢語言linq static void main ienumerablequery from s in names where s.length 5 orderby s select s.toupper foreach string item in query 我們看from s in names...

Linq 1查詢語言

查詢語言我們了解很多,大體上他們的思路語言都是相同的,linq也不難,只是我們把它想的太複雜了而已。linq語言整合化查詢 基礎 1,泛型 2,lambda from 元素 in 集合 where 元素條件 orderby 元素.屬性 ascending group 元素 by 元素.屬性 sele...

LinQ 擴充套件方法

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