当前位置:编程技术网 > 技术文章 > C#3.0 序列教程 > 文章详细内容

C#3.0 序列教程 (4) - 扩展方法

在C#1.0、2.0里面,常用ToString(),非常顺手; 很多人都会幻想下面的一个写法:

            string s;
            s = "555";
            int i = s.ToInt32();

当然,这个代码在C# 3.0里面已经成为了现实, 这个就是 C#3.0的 扩展方法 技术



  扩展方法:可以让我们在不改变原来代码的情况下, 扩展现在对象中的实例方法
  理解: 实质是在编译时,将扩展到实例方法的调用转换为对静态类中的静态方法的调用。
 




  相关知识点 1:OOP的编译过程
  class CCC
  {
   public void M()
   {
   }
  }
  CCC c1 = new CCC();
  c1.M();
  实际的编译过程是:
    运行时, 不论类有多少个实例在运行,
    方法的代码只会在内存的代码区存储1份,
    实际上实例方法编译时,自动会为其加1个自身对象指针的参数
    即: void M(CCC this)
    故, 我们说,在实例方法之中可以使用this,
    静态方法就不遵循此编译过程, 所以, 静态的函数中不能调用了this

 
  相关知识点 2:程序扩展的方式
   1、继承
   2、组合(将另一个类的对象作为这个类的成员)
   3、反射(运行时技术)
   4、扩展方法(编译时技术)

作者|来源:原创(17fx.net)发表于:2009-3-11 22:02:02