·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
您现在的位置:天新网 > 软件开发 > .Net开发 > C#
C#3.0新特性之扩展方法介绍
http://dev.21tx.com 2007年11月26日 中国自学编程网

  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.扩展方法是通过 指定关键字 t his 修 饰方法的第一个参数

  3.扩展方法必须声明在静态类中

  4.扩展方法要通用对象来调用

  5.扩展方法可以带参数

上一篇: 无废话C#设计模式之十:Flyweight
下一篇: C#中如何调用Delphi写的Dll

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net