ag凯发k8国际
收集整理的这篇文章主要介绍了
c# 3.0新特性之扩展方法
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
c#3.0扩展方法是给现有类型添加一个方法。现在类型既可是基本数据类型(如int,string等),也可以是自己定义的类。
//demo--1 //扩展基本类型 namespace testextensionmethods { // 必须建一个静态类,用来包含要添加的扩展方法 public static class extensions { //要添加的扩展方法必须为一个静态方法 //此方法参数列表必须以this开始 第二个即为要扩展的数据类型,在这里就是要扩展string类型 //第三个就无所谓了,就是一对象名,名字随便,符合命名规则即可 //综合来讲,此方法就是要给string类型添加一个叫testmethod的方法, 此方法返回一个int型的值,即返回调用此方法对象的长度。 public static int testmethod(this string s) { return s.length; } } //测试扩展方法类 class program { static void main(string[] args) { string str = "hello extension methods"; //调用扩展方法,必须用对象来调用 int len = str.testmethod(); console.writeline(len); } } } //demo--2 //扩展自定义类型,同时展示了扩展方法带参数情况,以及方法重载 namespace testextendmethod { public class student { public string description() { return "student............."; } public string description(string name) { return "the student’s name is " name; } } // 必须建一个静态类,用来包含要添加的扩展方法 public static class extensions { //要添加的扩展方法必须为一个静态方法 //此方法参数列表必须以this开始 第二个即为要扩展的数据类型,在这里就是要扩展student类型 //第三个就无所谓了,就是一对象名,名字随便,符合命名规则即可 //综合来讲,此方法就是要给student类型添加一个叫testmethod的方法,此方法返回一个string型的值 public static string testmethod(this student s) { return s.description(); } //要添加的扩展方法必须为一个静态方法 //此方法参数列表第一个参数表示要扩展哪一个类,第二个参数才表示此扩展方法的真正参数 //综合来讲,此方法就是要给student类型添加一个叫testmethod的方法, 此方法带有一个string类型的参数,并返回一个string型的值 public static string testmethod(this student s,string name) { return s.description(name); } } //测试扩展方法类 class program { static void main(string[] args) { student stu = new student(); //调用扩展方法,必须用对象来调用 string mes = stu.testmethod(); console.writeline(mes); //调用带参数的扩展方法,只要传第二个参数就可以了 //因为他的第一个参数其实只是为了表明是扩展哪个数据类型 mes = stu.testmethod("李沉舟"); console.writeline(mes); } } } |
总结:
1、扩展方法是给现有类型添加一个方法;
2、扩展方法是通过 指定关键字this修饰方法的第一个参数;
3、扩展方法必须声明在静态类中;
4、扩展方法要通用对象来调用;
5、扩展方法可以带参数。
转载于:https://www.cnblogs.com/wpf123/archive/2011/04/01/2052896.html
总结
以上是ag凯发k8国际为你收集整理的c# 3.0新特性之扩展方法的全部内容,希望文章能够帮你解决所遇到的问题。
如果觉得ag凯发k8国际网站内容还不错,欢迎将ag凯发k8国际推荐给好友。