程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#高級功能(四)擴展方法和索引

C#高級功能(四)擴展方法和索引

編輯:C#基礎知識

擴展方法使你能夠向現有類型“添加”方法,而無需創建新的派生類型、重新編譯或以其他方式修改原始類型。
擴展方法是一種特殊的靜態方法,但可以像擴展類型上的實例方法一樣進行調用。擴展方法被定義為靜態方法,但它們是通過實例方法語法進行調用的。  它們的第一個參數指定該方法作用於哪個類型,並且該參數以 this 修飾符為前綴。  僅當你使用 using 指令將命名空間顯式導入到源代碼中之後,擴展方法才位於范圍中。

最常見的擴展方法是 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 索引器分配的值。
索引器不必根據整數值進行索引;由你決定如何定義特定的查找機制。
索引器可被重載。
索引器可以有多個形參,例如當訪問二維數組時。

class SampleCollection<T>
{
    private T[] arr = new T[100];     
    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. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved