原创 C#學習筆記(三)—–C#高級特性:實現迭代器的捷徑

實現迭代器的捷徑 本章摘自《C# in depth》,內容包括: 在C#1中實現迭代器 C#中的迭代器塊 迭代器使用示例 使用迭代器作爲協同程序 迭代 器 模式 是 行爲 模式 的 一種 範例, 行爲 模式 是一 種

原创 C#學習筆記(七)—–集合--Array

集合–Array Array類是所有一維數組和多維數組的基類。而且它是實現集合接口中最基本的類型之一。Array提供了類型統一性,所以常見的方法都適用於Array,而與他們聲明地實際類型無關。 當使用C#語法創建一個數組時,CL

原创 C#學習筆記(八)—–LINQ查詢創建策略

這篇文章是引用博客園的,這篇文章應該也是出自C# in a nutshell,但是翻譯的比較好,容易理解。地址爲:http://www.cnblogs.com/lifepoem/archive/2011/10/31/2230175

原创 C#學習筆記(八)—–LinqToSql和Entity Framework(上)

LinqToSql和Entity Framework 雖然linqtosql(以下簡稱L2S)現在已經停止更新或者更新的很慢,它的地位也由Entity Framework(以下簡稱EF)逐漸取代,但是理解它們的原理對於後面的深入學

原创 C#學習筆記(八)—–LINQ查詢的基礎知識(下)

LINQ查詢語法和SQL語法的對比 LINQ查詢語法看起來和SQL語法非常相似,但他們完全不同。LINQ查詢表達式是一種C#表達式,遵循C#的語法規則,例如,在LINQ中,變量必須在聲明之後才能使用,與之不同的是在SQL中,se

原创 C#學習筆記(八)—–LINQ查詢的基礎知識(中)

LINQ查詢(中) (接上文)Lambda表達式及Func方法簽名:標準的查詢運算符使用了一個泛型Func委託,Func是System.Linq命名空間中一組通用的泛型委託,它的作用是保證Func中的參數順序和Lambda表達式

原创 一個用來計算文本大小的方法(以及再一次對閉包的解釋)

閉包 與Lambda 先看一下這個方法: private static string FormatBytes(long bytes) { string[] magnitudes = new

原创 C#學習筆記(八)—–LinqToSql和Entity Framework(下)

本篇大部分都摘自博客園,地址:http://www.cnblogs.com/lifepoem/archive/2011/11/15/2249303.html LinqToSql和Entity Framework(下) 在本篇中,我

原创 C#學習筆記(三)—–C#高級特性:擴展方法

C#高級特性:擴展方法 擴展方法允許爲一個類定義新的方法但是不用操作這個類。擴展方法就是一個靜態類的靜態方法,這個方法的第一個參數的類型就是要擴展的這個類的類型(加this): public static class Stri

原创 C#學習筆記(八)—–LINQ查詢之延遲執行

LINQ查詢之延遲執行 在LINQ中,另一個很重要的特性就是延遲執行,也可以說是延遲加載。它是指查詢操作並不是在查詢運算符定義的時候執行,真正使用集合中的數據時才執行,例如遍歷數據集合時調用MoveNext方法會觸發查詢操作,下面

原创 C#學習筆記(八)—–LINQ查詢的基礎知識(上)

由於都是手打的字,難免會出現錯誤,請大家指正,感激。比如下面出現的LINQ、LInq、LINq等都是指的一個東西:LINQ LINQ查詢 lINQ是Language Integrated Query的簡稱,他可以視爲一組語言和

原创 C#學習筆記(七)—–集合--ICollection和Ilist接口

ICollection和Ilist接口 雖然枚舉接口定義了可以迭代集合的方法,但是它們並沒有定義確定集合元素多少,根據索引訪問集合元素、搜索和修改元素等方法。爲了實現這些功能,.NET Framework定義了ICollecit

原创 C#學習筆記(三)—–C#高級特性:可空值類型

C#高級特性:可空值類型 可空值類型 引用類型可以用一個空引用(null)來表示一個不存在的值,值類型,通常不能用來表示一個可空的值。例如: string s = null; // OK, Reference Type int

原创 C#學習筆記(三)—–C#高級特性:dynamic

C#高級特性:動態綁定 動態綁定 動態綁定將類型綁定(類型解析、成員和操作過程)從編譯時推遲到了運行時。在編譯時,如果程序員知道某個特定函數、成員的存在而編譯器不知道,那麼這種操作是非常有用的,這種情況通常出現在操作動態語言和C

原创 C#學習筆記(八)—–LINQ查詢之子查詢

子查詢 在linq中,所謂的子查詢就是包含在另一個查詢的Lambda表達式中的查詢語句。下面這個示例中就是使用子查詢對一組音樂家名字按姓氏排序: string[] musos = { "David Gilmour", "Roger