其餘的基礎功能
1. C#高級功能(四)擴展方法和索引ui
2. C#高級功能(三)Action、Func,Tuplethis
3. C#高級功能(二)LINQ 和Enumerable類spa
4. C#高級功能(一)Lambda 表達式code
5. C#中泛型的解釋(object,list,var,dynamic的區別)htm
6. C#中委託對象
7. C#和.NET版本對比
擴展方法使你可以向現有類型「添加」方法,而無需建立新的派生類型、從新編譯或以其餘方式修改原始類型。
擴展方法是一種特殊的靜態方法,但能夠像擴展類型上的實例方法同樣進行調用。擴展方法被定義爲靜態方法,但它們是經過實例方法語法進行調用的。 它們的第一個參數指定該方法做用於哪一個類型,而且該參數以 this 修飾符爲前綴。 僅當你使用 using 指令將命名空間顯式導入到源代碼中以後,擴展方法才位於範圍中。html
最多見的擴展方法是 LINQ 標準查詢運算符,它將查詢功能添加到現有的 System.Collections.IEnumerable
和 System.Collections.Generic.IEnumerable<T> 類型。
若要使用標準查詢運算符,請先使用 using System.Linq 指令將它們置於範圍中。
在 IEnumerable<T> 類型的實例後鍵入「.」時,能夠在 IntelliSense 語句完成中看到這些附加方法。 數組
int[] ints = { 1, 2, 4,3, 2, 2 }; var result = ints.OrderBy(x=> x);
public static class MyExtensions { public static void WordCount(this string str) { Console.Write(str); } }
索引器容許類或結構的實例就像數組同樣進行索引。 索引器相似於屬性,不一樣之處在於它們的取值函數採用參數。函數
索引器概述
使用索引器能夠用相似於數組的方式爲對象創建索引。
get 取值函數返回值。 set 取值函數分配值。
this 關鍵字用於定義索引器。
value 關鍵字用於定義由 set 索引器分配的值。
索引器沒必要根據整數值進行索引;由你決定如何定義特定的查找機制。
索引器可被重載。
索引器能夠有多個形參,例如當訪問二維數組時。post
class SampleCollection<T> { private T[] arr = new T[100];
/** * 索引器在語法上方便您建立客戶端應用程序可將其做爲數組訪問的類、結構或接口。 索引器常常是在主要用於封裝內部集合或數組的類型中實現的。 * 索引器容許類或者結構的實例按照與數組相同的方式進行索引取值,索引器與屬性相似,不一樣的是索引器的訪問是帶參的。 * 索引器和數組比較: * (1)索引器的索引值(Index)類型不受限制 * (2)索引器容許重載 * (3)索引器不是一個變量 * 索引器和屬性的不一樣點 * (1)屬性以名稱來標識,索引器以函數形式標識 * (2)索引器能夠被重載,屬性不能夠 * (3)索引器不能聲明爲static,屬性能夠 * 索引器值不屬於變量;所以,不能將索引器值做爲 ref 或 out 參數進行傳遞。 * **/
public T this[int i] { get { return arr[i]; } set { arr[i] = value; } }public string this[ string s] { get { return " Test Return " + s; } }
} class Program { static void Main(string[] args) { SampleCollection<string> stringCollection = new SampleCollection<string>(); stringCollection[0] = "Hello, World"; System.Console.WriteLine(stringCollection[0]);
System.Console.WriteLine(stringCollection["Hello,World"]);
} }
// Output:
//Hello, World.
// Hello, World.
1. C#高級功能(四)擴展方法和索引ui
2. C#高級功能(三)Action、Func,Tuplethis
3. C#高級功能(二)LINQ 和Enumerable類spa
4. C#高級功能(一)Lambda 表達式code
5. C#中泛型的解釋(object,list,var,dynamic的區別)htm
6. C#中委託對象
7. C#和.NET版本對比