* 本片筆記出自MV5網站開發美學的一小段實作
.NET Framework 泛型集合類別都有實作 IEnumerable<T>,所以.NET Framework 的集合物件都能使用 LINQ 查詢方法處裡
System.Linq 裡面有一個 Enumerable 的靜態類別,可在現有的類別之下擴充類別的功能,且不需修改原來的程式碼。
ex:先決定要擴充哪個類別的實作擴充方法,並建立一個靜態類別,擴充法方名稱建議為
要擴充的類別名稱+Extension(延伸、擴充)
注意:1.擴充方法必須為靜態static方法,且不能與現有方法命名衝突
2.此方法必須有一個擴充型別參數,如果有兩個以上的參數,擴充型別必須為第一個參數,且不能有預設值
以下實作:
public static class Int32Extension
{
public static string FormatForMoney(this int Value)
{
return Value.ToString("$###,###,###,##0");
}
public static string FormatForMoneyToName(this int Value, string Name)
{
return string.Format("{0} 給 {1}", FormatForMoney(Value), Name);
}
}
public static class DoubleExtension
{
public static string FotmatPercent(this double Value)
{
return Value.ToString("0.00%");
}
}
static void Main(string[] args)
{
int money = 123456789;
double p = 0.1029;
Console.WriteLine("{0}", money.FormatForMoney());
Console.WriteLine("{0}", p.FotmatPercent());
Console.WriteLine("{0}", money.FormatForMoneyToName("Nick"));
}
實際印出: