zoukankan      html  css  js  c++  java
  • Silverlight Extension Methods特性

      通过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。之所以说它是一个特殊的静态方法,是因为它不但可以像普通静态方法一样调用,也可以通过实例化后的对象调用。

  • 相关阅读:
    Ubuntu下ATI显卡风扇转速调节脚本
    App_GlobalResources和LocalResources文件夹区别
    ubuntu下添加开机启动项
    UBUNTU安装PHP
    ubuntu apache2配置
    在ubuntu 上安装半透明玻璃窗口
    ASP.NET 页面:在此页面动态调用用户控件(.ASCX)
    Ubuntu 安装 LAMP 主机之后运行出现乱码
    Ubuntu下安装LMAP—菜鸟版
    Ubuntu 10.04风扇声音太大
  • 原文地址:https://www.cnblogs.com/huizhang212/p/ExtensionMethods.html
Copyright © 2011-2022 走看看