偶遇扩展方法 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