扩展其实真的很简单this
msdn是这样规定扩展方法的:“扩展方法被定义为静态方法,但它们是经过实例方法语法进行调用的。 它们的第一个参数指定该方法做用于哪一个类型,而且该参数以 this 修饰符为前缀。”orm
扩展方法的关键不在于定义所在的class的名字,关键在于扩展方法的第一个参数,以及全部class和扩展方法是否为static。blog
扩展方法的第一个参数指定这个扩展方法做用在的class。作用域
好比个人例子中为string添加一个扩展方法 (ToIntExt), 因此第一个方法必须是string类型,而且要加上this修饰符为前缀。get
完成了这些工做,你在StringExtension的做用域里任何string类型的实例均可以访问这个扩展方法(如上图)。string
扩展方法还能够添加参数,想要实现只需在第一个参数(this前缀)后面继续添加你须要的参数。以下,我想给个人ToIntExt扩展方法加一个format:it