A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄冉 中级黑马   /  2012-11-10 07:43  /  948 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             string str = "asdfdf";
  6.             int a=str.con();调用扩展方法必须用对象调用
  7.             Console.WriteLine(a.ToString());
  8.             int b = str.con1( ref str);调用扩展方法的时候我们只需要传入第二个参数就可以了,而第一个参数只是为了表明扩展哪个数据类型
  9.             Console.WriteLine(b.ToString());
  10.             Console.ReadKey();
  11.         }
  12.     }
  13.     public static class  test
  14.     {
  15.         public static int con(this string str)
  16.         {
  17.             return str.Length;
  18.         }
  19.         public static int con1(this string str, ref string s)
  20.         {
  21.             str = s;
  22.             return str.Length;
  23.         }
  24.     }
  25. 这里自己定义了一个静态类test,在静态类中定义了两个静态方法。发现在两个方法的形参中发现this修饰符.这两个方法就是扩展方法。所谓扩展方法就是向现有类型添加方法。没必要建新的派生类型,重新编译或者以其它方式修改原始类型。
  26. 从上面的代码可以看出:
  27. 1.扩展方法是给现有的类型添加一个方法
  28. 2.扩展方法必须在静态类中声明
  29. 3.扩展方法的调用是通过对象调用
  30. 4.扩展方法可以带参数
  31. 5.扩展方法是通过this修饰方法的第一个参数
复制代码

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

1 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马