前言:
扩展类:
特殊的静态方法 .linq中绝大部分都是扩展方法
有 参数,写后面:重载public static string ToExtensClass(this string s)//为string类型添加特殊的方法ToExtensClass { return s.Substring(0,1).ToUpper()+s.Substring(1).ToLower(); }
static string ToExtensClass(this string s)//为string类型添加特殊的方法ToExtensClass { return s.Substring(0,1).ToUpper()+s.Substring(1).ToLower(); }public static string ToExtensClass(this string s,int len)//为string类型添加特殊的方法ToExtensClass { return s.Substring(0,1).ToUpper()+ s.Substring(1,len).ToLower()+s.Substring(len+1);//感觉有点像是方法的集合,召集了一群皮皮虾 达到自己想要的效果 }
static string ToExtensClass(this string s,int len)//为string类型添加特殊的方法ToExtensClass { return s.Substring(0,1).ToUpper()+ s.Substring(1,len).ToLower()+s.Substring(len+1);//感觉有点像是方法的集合,召集了一群皮皮虾 达到自己想要的效果 }
Lambda
委托——匿名方法:过渡而来
委托:
该类定义了方法的类型,使得可以将方法当作另一个方法的参数来进行传递,动态地赋给参数,避免在程序中大量使用If-Else(Switch)语句,同时使得程序具有更好的可扩展性。来自百度百科
Public delegate string deleTransfer(string s); Private void ben_Click(object sender,EventArgs e){ deleTransfer trans=new deleTransfer(ToPascal);//委托指向方法ToPascal Console.WriteLine(trans("addEFGH"); } Public string ToPascal(string s){ return s.Substring(0,1).ToUpper(); }
trans=new deleTransfer(ToPascal);//委托指向方法ToPascal Console.WriteLine(trans("addEFGH"); } Public string ToPascal(string s){ return s.Substring(0,1).ToUpper(); }
匿名方法:
传递代码块作为委托参数的技术。匿名方法是没有名称只有主体的方法。
在匿名方法中您不需要指定返回类型,它是从方法主体内的 return 语句推断的。通过使用 delegate 关键字创建委托实例来声明的
deleTransfer trans=delegate(string s){ return s.Substring(0,1).ToUpper(); } Console.WriteLine(trans("addEFGH");
Lambda:3.5
deleTransfer trans =s =>(s.Substring (0,1).ToUpper()); Console.WriteLine(trans("addEFGH");