我編寫了下面的代碼來格式化C#MVC 5網站上的價格。再看一遍,我不知道它是如何工作的。MVC擴展方法HtmlHelper方法簽名語法
什麼是「this」關鍵字在靜態函數方法簽名中做的事情?爲什麼我需要傳入html參數,它不在函數中使用?這甚至是如何編譯的?
This HtmlHelper html是我發現混淆的部分。如何以這種方式使用「this」關鍵字是合法的?
public static MvcHtmlString PrettyUSD(this HtmlHelper html, int amount)
{
if (amount == 0)
{
return MvcHtmlString.Create("N/A");
}
else
{
return MvcHtmlString.Create(string.Format("{0:C0}", amount));
}
}
這就是javascripty!所以在方法簽名中使用「this」關鍵字是慣用的?在一個參數中使用3個令牌看起來很奇怪。 –
是的,它是C#語法。並且相信我,當你鏈接這些方法時它讀得更好:'something.Where(...)。Distinct()'比Enumerable.Distinct(Enumerable.Where(something,...))更容易閱讀' 。想象你有一個更長的鏈。 –
我總是想知道這些「流利」風格的API是如何編譯的。謝謝! –