C#学习-扩展方法
并不是所有的方法都可以用作扩展方法,如何分辨代码中定义的是扩展方法还是普通方法呢?
我们需要考察它是否符合下列扩展方法的定义规则:
1.扩展方法必须在一个非嵌套、非泛型的静态类中定义;
2.它至少要有一个参数;
3.第一个参数必须加上this关键字作为前缀(第一个参数类型也称为扩展类型,即指方法对这个类型进行扩展);
4.第一个参数不能使用任何其他的修饰符;
5.第一个参数的类型不能是指针类型
这些规则都是硬性规定,无论方法违反了哪一条,编译器都可能会报错,或认为它不是一个扩展方法。