扩展方法只是静态类中的静态方法,其行为类似于在其他类中定义的方法.
在类型前的第一个参数中,关键字thiswich表示这是一个扩展方法.
例:
public static class Extensions
{
public static object ExtensionMethodForStrings( this string s, object otherParameter)
{
//....
return //whatever you want to return or not
}
}
Run Code Online (Sandbox Code Playgroud)
这是System.String上的一个扩展方法,它接受两个参数: - string s:这是实例变量 - object otherParameter:你可以拥有任意多个参数,包括none
您可以通过两种方式调用此方法:
静态方式:
string s = "Your string";
object o = new object(); // or whatever you want
object result = Extensions.ExtensionMethodForStrings(s,o);
Run Code Online (Sandbox Code Playgroud)
扩展方式方式
string s = "Your string";
object o = new object(); // or whatever you want
object result = s.ExtensionMethodForStrings(o);
Run Code Online (Sandbox Code Playgroud)
在第二种情况下,它的工作方式就好像类型字符串有一个名为ExtensionMethodForStrings的实例方法.实际上对于编译器来说是等价的.