2010-08-07 92 views
2

我在.NET 4框架中關注tutorial on MVC。本教程創建這樣的功能....NET 4函數:函數參數問題

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類,但我不知道...有人可以解釋語法嗎?

回答

6

這是一個extension method。 (因爲C#3.0去過中):

擴展方法使你「添加」 方法現有類型而不 創建新的派生類型, 重新編譯,或以其他方式修改 的原始類型。擴展方法 是一種特殊的靜態方法, 但它們被調用,就好像它們是 上的擴展類型的實例方法。 對於用C#和 Visual Basic編寫的客戶端代碼,在調用 擴展方法和實際在類型中定義 的方法之間並沒有明顯的差異 。

+0

這主要是爆炸式的,但他們是一個3.5的功能;) – 2010-08-07 04:48:38

+0

哎呀!謝謝。可以發誓我在2.0中使用過它們! – 2010-08-07 04:50:51

0

您可以調用擴展方法有兩種方式:

HtmlHelpers.Truncate(helper, input, length) 

OR

helper.Truncate(input, length)