微交易網(wǎng)站建設(shè)實(shí)時(shí)積分榜
官方解釋? ? ? ??
????????擴(kuò)展方法使你能夠向現(xiàn)有類型“添加”方法,而無(wú)需創(chuàng)建新的派生類型、重新編譯或以其他方式修改原始類型。 擴(kuò)展方法是一種靜態(tài)方法,但可以像擴(kuò)展類型上的實(shí)例方法一樣進(jìn)行調(diào)用。 對(duì)于用 C#、F# 和 Visual Basic 編寫的客戶端代碼,調(diào)用擴(kuò)展方法與調(diào)用在類型中定義的方法沒(méi)有明顯區(qū)別。
????????最常見(jiàn)的擴(kuò)展方法是 LINQ 標(biāo)準(zhǔn)查詢運(yùn)算符,它將查詢功能添加到現(xiàn)有的?System.Collections.IEnumerable?和?System.Collections.Generic.IEnumerable<T>?類型。 若要使用標(biāo)準(zhǔn)查詢運(yùn)算符,請(qǐng)先使用?using System.Linq
?指令將它們置于范圍中。 然后,任何實(shí)現(xiàn)了?IEnumerable<T>?的類型看起來(lái)都具有?GroupBy、OrderBy、Average?等實(shí)例方法。 在?IEnumerable<T>?類型的實(shí)例(如?List<T>?或?Array)后鍵入“dot”時(shí),可以在 IntelliSense 語(yǔ)句完成中看到這些附加方法。
? ? ? ? 擴(kuò)展方法定義的語(yǔ)法
public static 返回值類型 方法名(this 擴(kuò)展的數(shù)據(jù)類型 參數(shù)名)
{
}
注意? 擴(kuò)展方法所在的類一定是?static 的
示例:下面是給 string 類型的增加了一個(gè)將字符串轉(zhuǎn)成int不會(huì)出現(xiàn)異常的擴(kuò)展方法
/// <summary>
/// 字符串?dāng)U展方法
/// </summary>
public static class StringExtension
{/// <summary>/// string 轉(zhuǎn) int/// </summary>/// <param name="value"></param>/// <returns>轉(zhuǎn)換失敗返回int最小值,否則返回對(duì)應(yīng)的值</returns>public static int ToInt(this string value){int val = int.MinValue;int.TryParse(value, out val);return val;}
}
調(diào)用
int age = "20".ToInt();
注意 如果發(fā)現(xiàn)調(diào)用不了應(yīng)該是沒(méi)有引用擴(kuò)展方法的命名空間