0

我发现了一个这样声明的方法:

public static int WordCount(this string str)
{
    return str.Length;
}

在这个特定的上下文中,this关键字是什么?

4

2 回答 2

2

这是一种扩展方法。扩展方法允许您扩展类型。它非常适合string您无法访问源代码的类型。

使用您提供的示例,而不是调用

string test = "foo";
var result = StaticClass.WordCount(test);

您可以按如下方式使用它:

string test = "foo";
var result = test.WordCount();

琐事:LINQ 是使用扩展方法实现的,事实上,这是将扩展方法添加到 .NET 框架的主要原因。

于 2013-08-19T18:17:56.350 回答
0

它使它成为一种扩展方法。

这意味着您可以像这样调用该方法:

arg.WordCount();

而不是这样:

Class.WordCount(arg);

它主要用于扩展无法直接修改其源代码的类型(因此得名)。

于 2013-08-19T18:17:42.377 回答