Chinaunix首页 | 论坛 | 博客
  • 博客访问: 847872
  • 博文数量: 372
  • 博客积分: 10063
  • 博客等级: 中将
  • 技术积分: 4220
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 11:36
文章分类

全部博文(372)

文章存档

2012年(372)

分类: 虚拟化

2012-03-14 20:44:44

通过Silverlight Extension Methods特性我们可以扩展基础类,为基础类增加一些方法,并且增加的方法可以同基础类原本的方法同样方式调用,相当的方便。下面就直接来看一个例子吧。在使用日期时间时常常会需要获取从1970-1-1日以来的总毫秒数,可是C#中的DateTime并未提供这个函数,下面就以此为例介绍一下Extension Methods特性。代码如下。
namespace Huizhang212
{
///
/// 利用Extension Methods特性实现对DateTime基础类扩展
///

public static class HuiExtensions
{
///
/// DateTime的扩展函数
/// 获取从1970-1-1日以来的总毫秒数
///

///
///
public static long GetTime(this DateTime dt)
{
DateTime d1970 = new DateTime(1970, 1, 1);
return (dt.Ticks - d1970.Ticks) / 10000;
}
}

///
/// 测试用例
///

public class TestCase
{
public static void Test()
{
//获取毫秒数
DateTime now = DateTime.Now;
long time = now.GetTime();
}
}
}

  通过上面的例子应该很容易明白Extension Method特性的用法。简单的说Extension Method是一个定义在Static Class的一个特殊的Static Method。之所以说它是一个特殊的静态方法,是因为它不但可以像普通静态方法一样调用,也可以通过实例化后的对象调用。

阅读(341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~