Jos*_*eld 2 c# extension-methods
比方说,我希望我能得到的扩展方法是利用我的扩展方法里面的"this"引用调用在B类的实例的引用,以扩展方法添加到B级?
小智 6
是的,不是.简要介绍一下文档非常清楚.
每个定义的扩展方法的第一个参数是指向方法从被叫/附接到对象,它实际上是由该关键字,但与它自己的名称引用的变量:
http://msdn.microsoft.com/en-us/library/bb383977.aspx
namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这使得那里有一个名为"str"的"this"变得非常容易.因此,您不能使用"this"(因为这将指向定义扩展方法的类的现有实例),但您可以声明自己的替换变量,该变量指向附加扩展方法的对象.