通過Silverlight Extension Methods特性我們可以擴展基礎類,為基礎類增加一些方法,並且增加的方法可以同基礎類原本的方法同樣方式調用,相當的方便。下面就直接來看一個例子吧。在使用日期時間時常常會需要獲取從1970-1-1日以來的總毫秒數,可是C#中的DateTime並未提供這個函數,下面就以此為例介紹一下Extension Methods特性。代碼如下。
namespace Huizhang212
{
/// <summary>
/// 利用Extension Methods特性實現對DateTime基礎類擴展
/// </summary>
public static class HuiExtensions
{
/// <summary>
/// DateTime的擴展函數
/// 獲取從1970-1-1日以來的總毫秒數
/// </summary>
/// <param name="dt"></param>
/// <returns></returns>
public static long GetTime(this DateTime dt)
{
DateTime d1970 = new DateTime(1970, 1, 1);
return (dt.Ticks - d1970.Ticks) / 10000;
}
}

 

/// <summary>
/// 測試案例
/// </summary>
public class TestCase
{
public static void Test()
{
//獲取毫秒數
DateTime now = DateTime.Now;
long time = now.GetTime();
}
}
}
通過上面的例子應該很容易明白Extension Method特性的用法。簡單的說Extension Method是一個定義在Static Class的一個特殊的Static Method。之所以說它是一個特殊的靜態方法,是因為它不但可以像普通靜態方法一樣調用,也可以通過具現化後的物件調用。
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()