概念
为现有非静态 变量类型 添加新方法
作用
- 提升程序拓展性
- 不需要类中重新写方法
- 不需要继承来添加方法
- 为别人封装的类型写额外的方法
特点
- 一定是写在静态类中
- 一定是个静态函数
- 第一个参数为拓展目标
- 第一个参数用this修饰
基本语法:
在静态类中声明的静态方法
访问修饰符 static 返回值 函数名(this 拓展类名 参数名,参数类型 参数名,。。。)
{
//do something
}
namespace 拓展方法
{
static class Tools
{
/// <summary>
/// 为 int32 类 拓展一个成员方法
/// </summary>
/// <param name="value">使用这个方法的实例化对象(成员方法需要实例化对象来调用)</param>
/// <param name="i">参数</param>
/// <returns>返回调用对象加上参数 i 后的和</returns>
public static int Add (this int value, int i)
{
return value + i;
}
}
class Program
{
static void Main (string[] args)
{
Console.WriteLine (10. Add (5)); //15
}
}
}
补充:如果拓展函数名和拓展对象自己有的函数重名,则调用时会调用拓展对象自己的函数,而不是调用拓展的函数。