您的位置:首页 > 其它

.Net平台下的扩展方法

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

定义和调用扩展方法

定义一个静态以包含扩展方法。

该类必须对客户端代码可见。有关可访问性规则的更多信息,请参见访问修饰符(C# 编程指南)。

将该扩展方法实现为静态方法,并使其至少具有与包含类相同的可见性。

该方法的第一个参数指定方法所操作的类型;该参数必须以 this 修饰符开头。

在调用代码中,添加一条 using 指令以指定包含扩展方法类的命名空间。

按照与调用类型上的实例方法一样的方式调用扩展方法。

请注意,第一个参数不是由调用代码指定的,因为它表示正应用运算符的类型,并且编译器已经知道对象的类型。您只需通过 n 为这两个形参提供实参。

代码示例如下:


//包含扩展方法的类

namespace ExtensionMethodDemo
{
//类必须为非泛型静态类
public static class ExtensionMethodClass
{
//定义一个扩展方法,该方法是静态方法
public static string DoubleStr(this string s)
{
return s + s;
}
}
}


//引用扩展方法的类

using System;
//如果不在同一个命名空间需要添加引用
namespace ExtensionMethodDemo
{
class Program
{
static void Main(string[] args)
{
string s = "ABC";
//调用扩展方法
s = s.DoubleStr();
Console.WriteLine(s);//输出结果为"ABCABC"
Console.ReadKey();
}
}
}



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: