一.拓展方法
-为现有的非静态变量类型添加新方法
-提供程序拓展性
-不需要再对象中重新写方法
-不需要用继承来添加方法
-为别人封装的类型写额外的方法
-一定是写在静态类
-一定是静态函数
-第一个参数为拓展目标
-第一个参数用this修饰
二.语法与使用
static class TestClass()
{
//访问修饰符 static 返回值 函数名(this 拓展类名 参数名,参数类型 参数名...)
public static void TestFunc(this int value)
{
//为int类型,拓展了一个叫TestFunc的方法,一个参数名为value
Console.WriteLine("一个拓展方法"+value);
}
public static void TestFunc2(this string str,string1)
{
Console.WriteLine("调用者的值"+str);
Console.WriteLine("自己传的参数"+string1);
}
}
static void Main(string[] args)
{
int i = 12;
i.TestFunc();
//这里不用传第一个参数,拓展函数要求写第一个参数,是固定格式,value相当于i的值12
string j = "123";
j.TestFunc2("321");//该参数为string1赋值
}
注意,若拓展的方法名,与类型原本拥有的方法重名,则拓展无效,在调用时还是会使用原方法.
参考资料<唐老狮C#教程>