C# 扩展方法

什么是扩展方法

扩展方法使你能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。 扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。 对于用 C#、F# 和 Visual Basic 编写的客户端代码,调用扩展方法与调用在类型中实际定义的方法没有明显区别。

如何定义

1.定义一个静态类以包含扩展方法。该类必须对客户端代码可见。
2.将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性。
3.该方法的第一个参数指定方法所操作的类型;该参数必须以 this 修饰符开头。
4.在调用代码中,添加一条 using 指令以指定包含扩展方法类的命名空间。
5.按照与调用类型上的实例方法一样的方式调用扩展方法。

示例

给String类定义一个扩展方法

public static class MehtondExtension{
    public static string tostring(this string s){
       return (string.Format("Extension output: {0}", s));
    }
}

注意可见修饰、static和传入参数中的this。

在Main函数中进行调用:

class Program{
    static void Main(string[] args){
        string s = "Hello World";
        Console.WriteLine(s.ExToString());
        Console.ReadKey();
    }
}

输出 :Extension output: Hello World

原文地址:https://www.cnblogs.com/halfsaltedfish/p/11373305.html