C# 3.0就引入的新特性,扩展方法可以很大的增加你代码的优美度,扩展方法提供你扩展.NET Framewoke类的扩展途径,书写和规则也简单的要命。

编写扩展方法有下面几个要求:

第一:扩展方法所在的类必须是全局的,不能是内部嵌套类。

第二:扩展方法的类是静态类。

第三:扩展方法是静态方法。

第四:扩展方法的第一个参数的数据类型必须是要扩展类型。

第五:扩展方法的第一个参数使用this关键字。

下面是一段很简单的代码:


 1 using System;  2  using System.Collections.Generic;  3  using System.Linq;  4  using System.Text;  5   6  namespace ExtensionMethod  7 {  8  public static class TestClass  9  { 10  public static void Print(this int i) 11  { 12  Console.WriteLine(i); 13  } 14  15  public static int Times(this int i) 16  { 17  return i * 2; 18  } 19  20  public static int Add(this int i, int d) 21  { 22  return i + d; 23  } 24  } 25  26  class Program 27  { 28  static void Main(string[] args) 29  { 30  int number = 4; 31  number.Print(); 32  Console.WriteLine(number.Times()); 33  Console.WriteLine(number.Add(5)); 34  } 35  } 36 }

代码很简单,扩展的是int类型。

第一个是定义了一个Print方法,是没有参数没有返回值的扩展方法。

第二个是定义了一个带返回值无参数的扩展方法。

第三个是定义了一个有返回值有参数的扩展方法。

最新文章

  1. 移动开发那些坑之——safari mobile click事件的冒泡bug
  2. Hbuilder开发HTML5 APP之创建子页面
  3. HDU3466 Proud Merchants[背包DP 条件限制]
  4. jquery实现幻灯片
  5. (转)轻松学习JavaScript三:JavaScript与HTML的结合
  6. ZK dropEvent简单使用
  7. HDU 2594 Simpsons’ Hidden Talents(KMP的Next数组应用)
  8. Javascript 弱类型:除法结果是小数
  9. Codeforces Round #198 (Div. 2) —— A
  10. Acdream Mengzhu
  11. Linux 学习之防火墙配置
  12. go 冒泡排序
  13. JaveScript函数(JS知识点归纳六)
  14. Centos搭建开发环境,PHP7+ Nginx1.12+ Mysql5.7
  15. Android 5.0 调色 Palette调色功能
  16. C语言练习题库----数组
  17. 如何在宿主机上执行容器里的jmap,jtack,jstat 命令获取信息(原创)
  18. JS-给对象动态添加属性
  19. MySQL高级知识(四)——Explain
  20. 阿里Java编码规范

热门文章

  1. org.elasticsearch.search.sort.SortBuilder使用
  2. PCB中的SOLD MASK和阻抗开窗
  3. How to remove constantly launching services on Mac OS X
  4. LinuxShell脚本编程基础5--数值,字符串,文件状态测试,((..))和[[..]]的使用
  5. 有意思的shader案例
  6. 九度oj 1034 寻找大富翁 2009年浙江大学计算机及软件工程研究生机试真题
  7. Signal Handling--ref
  8. telnet 命令使用方法详解
  9. VMware Workstation 12激活码
  10. [转]Supporting OData Query Options in ASP.NET Web API 2