偶遇扩展方法 this

昨天在公司的代码中看到一个有意思的东西,就是方法的参数前加上一个this,我以前没有见过,当然也没有用过,出于好奇,就打开IE浏览器进行了百度行动,这是我的一贯作风,有困难找百度,最后的百度的结果是,这是扩展方法,很神奇的东西,我现在是一个小小的菜鸟,对这个不熟悉很自然,希望各位大虾们不要笑话我,在这里我是想自我总结,希望和我一样没见过的小鸟们一起学习,这个扩展方法挺有意思的,在网上看的云里雾里的,没有一个文章能给我讲清楚,于是乎,还是通过交流学习吧,我去想我的组长请教了一下,原来这个东西是所得寺内,哈哈,下面我简单的介绍我所学的东西。

 

1、扩展方法是给现有类型添加一个方法;

2、扩展方法是通过 指定关键字this修饰方法的第一个参数;

3、扩展方法必须声明在静态类中;

4、扩展方法要通用对象来调用;

5、扩展方法可以带参数。

 

还是看看代码吧:

 

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

 

namespace ThisDemo

{

    class Program

    {

        static void Main(string[] args)

        {

            Operation op = new Operation();

            Person p = new Person();

            Console.WriteLine("普通实例方法拿到的名字:"+op.GetName(p));

            Console.WriteLine("通过扩展方法拿到的年龄:"+p.GetAge().ToString());

            Console.Read();

        }

    }

 

    public class Person

    {

        public string Name = "我的名字";

        public int Age = 22;

    }

 

    public class Operation

    {

        public string GetName(Person p)

        {

            return p.Name;

        }

    }

 

    public static class Helper

    {

        public static int GetAge(this Person p)

        {

            return p.Age;

        }

    }

}

 

以上代码不想多解释,我看到人家介绍的比我好,我不想说得太多,如果想进一步了解,我给大家提供一个网址,大家可以学习一下。

 

http://www.cnblogs.com/ldp615/archive/2009/08/07/1541404.html

posted @ 2011-08-04 09:51  TerryZou1989  阅读(203)  评论(0编辑  收藏  举报