我在.NET 4框架上关注tutorial on MVC。教程创建了这样的函数......
using System.Web;
using System.Web.Mvc;
namespace vohministries.Helpers
{
public static class HtmlHelpers
{
public static string Truncate(this HtmlHelper helper, string input, int length)
{
if (input.Length <= length)
{
return input;
}
else
{
return input.Substring(0, length) + "...";
}
}
}
}
我不知道this HtmlHelper helper
在函数参数中的含义或代表。这是.NET 4中的新功能吗?我认为它可能会扩展HtmlHelper类,但我不确定......有人可以解释语法吗?
答案 0 :(得分:6)
这是extension method。 (从C#3.0开始):
扩展方法可让您“添加” 没有的现有类型的方法 创建一个新的派生类型, 重新编译或以其他方式修改 原始类型。扩展方法 是一种特殊的静态方法, 但他们被称为好像他们一样 扩展类型的实例方法。 对于用C#编写的客户端代码 Visual Basic,没有明显的 呼叫之间的区别 扩展方法和方法 实际上是在一个类型中定义的。
答案 1 :(得分:0)
您可以通过两种方式调用该扩展方法:
HtmlHelpers.Truncate(helper, input, length)
OR
helper.Truncate(input, length)