【问题标题】:.NET 4 function : Function argument question.NET 4 函数:函数参数问题
【发布时间】:2010-08-07 04:41:47
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    这是一个extension method。 (从 C# 3.0 开始使用):

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

    【讨论】:

    • 这主要是 bang-on,但它们是 3.5 的功能 ;)
    • 糟糕!谢谢。我可以发誓我会在 2.0 中使用它们!
    【解决方案2】:

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

    HtmlHelpers.Truncate(helper, input, length)
    

    helper.Truncate(input, length)
    

    【讨论】:

      猜你喜欢
      • 2014-03-06
      • 1970-01-01
      • 2011-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 2022-01-07
      相关资源
      最近更新 更多