首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

.NET 3.x 新特性體驗:擴充方法

     編輯:關於C語言

什麼是擴充方法

在靜態類別中定義靜態方法,第一個參數加 this 修飾符,即可「擴充」既有型別(含介面)的方法。呼叫時如同實例方法,IntelliSense 會顯示 (extension) 標記。

擴充 IDataReader:依欄位名稱取值

public static class Extensions
{
    public static string GetString(this IDataReader dr, string name)
    {
        return dr.GetString(dr.GetOrdinal(name));
    }
    public static int GetInt32(this IDataReader dr, string name)
    {
        return dr.GetInt32(dr.GetOrdinal(name));
    }
}

IntelliSense 擴充方法提示

繼承關係與擴充 Object

  • 擴充介面 → 所有實作類別自動擁有。
  • 擴充 Object → 所有型別皆可用(需引用命名空間)。

範例:擴充 Object 判斷是否在集合中、字串驗證 Email

public static bool IsIn(this object o, IEnumerable collection)
{
    foreach (object item in collection)
        if (item.Equals(o)) return true;
    return false;
}

public static bool IsEmailAddress(this string text)
{
    return new Regex(@"^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$").IsMatch(text);
}

Object 擴充方法提示

LINQ 即擴充方法

LINQ to Objects / SQL / XML 皆建構於擴充方法之上,提供豐富的查詢運算子。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved