方法声明中的this关键字是什么意思?

时间:2013-08-19 18:16:45

标签: c# .net methods

我发现了一个声明如下的方法:

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

此特定情境中的this关键字是什么?

2 个答案:

答案 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);

它主要用于扩展类型(因此名称),你不能直接修改它的源代码。