拓展方法
一.拓展方法基本概念
概念:为现有非静态变量类型添加新方法
作用:
1.提升程序拓展性
2.不需要在对象中重新写方法
3.不需要继承来添加方法
4.为别人封装的类型写额外的方法
特点:
1.一定是写在静态类中
2.一定是个静态函数
3.第一个参数为拓展目标
4.第一个参数用this修饰
二.基本语法
访问修饰符 static 返回值 函数名(this 拓展类名 参数名,参数类型 参数名,参数类型 参数名……)
三.实例
1 2 3 4 5 6 7 8 9 10
| static class Tools{ public static void SpeakValue(this int value) { Console.WriteLine("为int类型拓展的方法"+value); } }
|
四.使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| namespace 语法知识 { static class Tools{ public static void SpeakValue(this int value) { Console.WriteLine("为int类型拓展的方法"+value); } public static void SpeakStringInfo(this string str,string str2,string str3){ Console.WriteLine("为string类型拓展的方法"); Console.WriteLine("调用方法的对象"+str); Console.WriteLine("传的参数为"+str2+str3); } } internal class Program { static void Main(string[] args) { int i =10; i.SpeakValue(); string str="000"; str.SpeakStringInfo("111","222"); } } }
|
说白了,拓展方法就是为那些无法修改的静态类新增加一些成员方法,这样即不用动大手术,又可以起到作用,相当于“打补丁”了。
五.为自定义的类型拓展方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| static class Tools{ public static void Fun3(this Test t){ Console.WriteLine("为Test拓展的方法"); } } class Test{ public int i=10; public void Fun1(){ Console.WriteLine("123"); } public void Fun2(){ Console.WriteLine("456"); } }
Test t= new Test(); t.Fun3();
|