扩展方法是静态方法,是类的一部分,但没有在类的源代码中,就像一个补丁
首先创建一个静态类,然后创建一个静态方法,重点是静态方法的参数
public static class xExtension
{
public static int x(this char s)
{
return Convert.ToInt32(s);
}
}
class MainClass
{
public static void Main()
{
char y = 'A';
Console.WriteLine(y.x());
}
}
这里定义了一个扩展方法x,注意x的参数列表(this char s),this和char定义了这是一个char的扩展方法,s是char类型的形参
扩展方法x的作用是将char字符转换为对应的ascii码
如果参数静态方法的参数列表是(this int s),那么这就是int的扩展方法
扩展方法的调用和普通方法调用方式一样,这里声明了char类型变量y,然后调用y.x()
,运行便会在控制台输出65
注意:扩展方法的优先级低于实例方法的优先级,如果定义了同名的实例方法,那么扩展方法永远无法调用