扩展方法
扩展方法就是给对象添加功能的一种方式。
扩展方法可以扩展类,使之增加需要的方法;扩展方法也可以用于扩展接口。这样,实现该接口的所有类就有了公共功能。
扩展方法是静态方法,同时声明扩展方法的类也是静态类。扩展方法是扩展对象的一部分,但实际没有放在对象的原代码中。
扩展方法必须包含关键字this作为它的第一个参数类型,并在后面跟着它所扩展的类型。
使用扩展方法,需要using指令引用该扩展方法所在的命名空间;如果该类型存在与扩展方法同名的实例方法,则扩展方法永远不会被使用。
interface IWord
{
public string AddWordA(string word);
}
public class WordClass : IWord
{
public string AddWordA(string word)
{
return word.PadLeft(3, 'A');
}
}
static class WordExtension
{
//扩展方法的参数必须是this + 需要扩展的类型名
public static string GetWord(this IWord word)
{
return "this is Extension Method";
}
}
class Program
{
private static void Main()
{
IWord word = new WordClass();
Console.WriteLine(word.AddWordA("BC"));
//使用扩展方法时,需要用实例方法的语法,不用类型名.方法名的形式
Console.WriteLine(word.GetWord());
}
}