扩展方法的介绍与使用

扩展方法可以让你能够向现有的类型中添加新的方法。这种添加方法的方式可以编译到单独的类库中,不需要重新修改、编译和发布原有的代码。

下面这个例子就是在不继承的情况下为密封类String添加扩展方法(注:密封类是无法继承的)


public static class StringExtensions

{

    public static String Cam(this String str)

    {

        /*省略部分代码*/

        return str;

    }

}

使用扩展方法:

String str="abc";

String value=str.Cam();

以上代码就可以在不修改String类型时为String类型添加一些常用的方法,这种扩展方法在一定程序上让代码变得更清晰,增加可读性。

注意事项:

1.扩展方法必须放在静态类(即用static关键字声明的类)中,类名命名规则建议为”被扩展的类名“+”Extensions“,这样便于维护,同时也便于IDE工具进行识别。

2.扩展方法必须是静态方法函数,第一个参数的类型必须是被扩展的类型,且必须使用this关键字声明,这表示该方法只能被该类进行调用。

3.扩展方法的签名(方法名称、参数的顺序类型)必须是原方法不存在的,否则该扩展方法将不会被调用。

4.建议只有在原始类不能编辑修改的情况下使用,当可以修改源代码的,请优先重构原始类。