.NET 4函数:函数参数问题

时间:2010-08-07 04:41:48

标签: c# .net asp.net-mvc .net-4.0

我在.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类,但我不确定......有人可以解释语法吗?

2 个答案:

答案 0 :(得分:6)

这是extension method。 (从C#3.0开始):

  

扩展方法可让您“添加”   没有的现有类型的方法   创建一个新的派生类型,   重新编译或以其他方式修改   原始类型。扩展方法   是一种特殊的静态方法,   但他们被称为好像他们一样   扩展类型的实例方法。   对于用C#编写的客户端代码   Visual Basic,没有明显的   呼叫之间的区别   扩展方法和方法   实际上是在一个类型中定义的。

答案 1 :(得分:0)

您可以通过两种方式调用该扩展方法:

HtmlHelpers.Truncate(helper, input, length)

OR

helper.Truncate(input, length)