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、扩展方法(编译时技术)