我发现了一个声明如下的方法:
public static int WordCount(this string str)
{
return str.Length;
}
此特定情境中的this
关键字是什么?
答案 0 :(得分:2)
这是extension method。扩展方法允许您扩展类型。这对于string
这样的类型来说非常棒,因为您无法访问源代码。
使用您提供的示例,而不是调用
string test = "foo";
var result = StaticClass.WordCount(test);
您可以按如下方式使用它:
string test = "foo";
var result = test.WordCount();
Trivia:LINQ是使用扩展方法实现的,实际上是扩展方法被添加到.NET框架的主要原因。
答案 1 :(得分:0)
它使它成为一种扩展方法。
这意味着你可以调用这样的方法:
arg.WordCount();
而不是像这样:
Class.WordCount(arg);
它主要用于扩展类型(因此名称),你不能直接修改它的源代码。