public static class Test
{
//扩展方法
static string TestString(this string s)
{
return s + "test";
}
//调用
public static System.Collections.IEnumerable tets()
{
string s = "1".TestString();
yield return new { i = 1, j = 2 };
}
}
并不是任何方法都能作为扩展方法使用——它必须具有以下特征:
1、它必须在一个非嵌套的、非泛型的静态类中(所以必须是一个静态方法);
2、它至少要有一个参数;
3、第一个参数必须附加this关键字作为前缀;
4、第一个参数不能有其他任何修饰符(比如out或ref);
5、第一个参数的类型不能是指针类型
注意:
1、不可滥写、用扩展,一定是有意识的去使用
2、一般用于公共库的扩展,所以命名要规范
3、如果一定要使用,那就把扩展方法放到自己的命名空间中,避免无用