zoukankan      html  css  js  c++  java
  • 扩展方法

    枚举不用多说,介绍下扩展方法:扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。[当然是从msdn拷贝的咯,详情请见~]

    扩展方法需定义在静态类中,并且方法本身也应声明为静态的,第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰符为前缀。注意,与接口或类方法具有相同名称和签名的扩展方法永远不会被调用。

    举个栗子:

    public enum EnumWeekday
    {
          
           None, // 不好意思,强行植入None,记住它会有用的
    Monday,

    TuesDay,

    星期三, // Unicode就是这么自信

    Thursday,

    Friday,
    }

    // 第二个方法不是扩展方法,一般只将扩展方法放在一个类中
    // 当然可以将其声明为扩展方法,但不建议
    static class ExternFunc
    {
    /// <summary>
    /// EnumWeekday枚举的扩展方法
    /// </summary>
    public static string ToChinese(this EnumWeekday day)
    {
    switch (day)
    {
    case EnumWeekday.Monday:
    return "星期一";

    case EnumWeekday.TuesDay:
    return "星期二";

    default:
    return day.ToString();
    }
    }

    /// <summary>
    /// 字符串转枚举
    /// </summary>
    public static EnumWeekday String2EnumWeekday(string day)
    {
    switch (day)
    {
    case "星期一":
    return EnumWeekday.Monday;

    default:
    return EnumWeekday.Friday; // 皮一下,反正周末还不是要加班-_-
    }
    }
    }

    上面已介绍,像实例方法一样调用扩展方法就欧克了--EnumWeekday friday = EnumWeekday.Friday; Debug.WriteLine("今天是{0}", friday.ToChinese());

    --I love this guy.
  • 相关阅读:
    Windows 软件推荐大全【all】
    网络基础之IP地址和子网掩码
    Windows 常识大全【all】
    FinalShell使用---Xshell的良心国产软件
    雷军语录:写程序有写诗一样的感觉
    Proxyee-down的下载与安装教程
    QPointer,QSharedPointer,QWeakPointer的区别
    Android Auto开发初探
    车载摄像头 原像 镜像
    Bluetooth协议栈学习之SDP
  • 原文地址:https://www.cnblogs.com/qiu18359243869/p/9485395.html
Copyright © 2011-2022 走看看