C# 扩展方法

Posted halfsaltedfish

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

以上是关于C# 扩展方法的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 c# 扩展方法扩展类? [复制]

最佳实践:C# 扩展方法命名空间和推广扩展方法

C#当中的扩展方法

C#扫盲之:带你掌握C#的扩展方法以及探讨扩展方法的本质注意事项

C#中的扩展方法

C# 扩展方法