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

    用途:在不修改源码的情况下,为某个类增加新的方法。

    注意

    1.C#只支持扩展方法,不支持扩展属性、扩展事件;

    2.方法名无限制,第一个参数必须带this,表示要扩展的类;

    3.定义扩展方法的类必须是静态类;

    4.扩展方法虽然是public的静态方法,但是生成以后是实例方法,使用时需要先实例化对象,通过对象.方法名进行调用扩展方法。 

    /// <summary>

    /// 静态类:对Convert进行扩展,增加一个将string转换成int的方法
    /// </summary>
        public static class ConvertExtension
        {
            /// <summary>
            /// 静态方法:this 表示针对this后面的类型进行扩展
            /// </summary>
            /// <param name="s"></param>
            /// <returns></returns>
            public static int ConvertToInt(this Convert convert,string s)
            {
                int i;
                if (int.TryParse(s, out i))
                {
                    return i;
                }
                else
                {
                    return 0;
                }
            }
        }

    class Program
        {
            static void Main(string[] args)
            {
                //使用扩展方法:扩展方法虽然是public的静态方法,但是生成以后是实例方法, 使用时需要先实例化对象,通过对象.方法名进行调用扩展方法
                //扩展方法所在命名空间和使用代码的命名空间必须相同 扩展方法必须是静态类
                Convert convert = new Convert();
                int i= convert.ConvertToInt("abc");

                Console.WriteLine(i);//输出:0

                //方法2
                int j= ConvertExtension.ConvertToInt(convert, "2");
                Console.WriteLine(j);//输出:2

                Console.ReadKey();
            }
        } 



  • 相关阅读:
    MVC是什么意思?
    Paypal 在线支付接口应用从零开始,第2节,[支付API原理及流程]
    人人网
    百度框计算研究
    最近总被黑。然后。。发现了很多知识值得学习。。分享出来。
    首次购房契税下调至1% 首付降为20%
    由“百鸡问题”浅谈程序性能
    10月1日起机动车所有人可自行编排车牌号
    08中国互联网大会23在南京开幕
    MySQL联合创始人向Sun递交辞呈
  • 原文地址:https://www.cnblogs.com/ljdong7/p/12558938.html
Copyright © 2011-2022 走看看