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...