頁的下面一行的Pro ASP.NET MVC Framework 110沒有意義對我說:臨ASP.net MVC框架的代碼問題
string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i);
我不明白什麼是null
做在上面的語句?
我無法做到.. HtmlHelper.PageLinks(....)
是對PageLinks方法的擴展方法?
頁的下面一行的Pro ASP.NET MVC Framework 110沒有意義對我說:臨ASP.net MVC框架的代碼問題
string links = ((HtmlHelper)null).PageLinks(2, 3, i => "Page" + i);
我不明白什麼是null
做在上面的語句?
我無法做到.. HtmlHelper.PageLinks(....)
是對PageLinks方法的擴展方法?
它調用HtmlHelper的空「實例」的擴展方法。可能沒有HtmlHelper的作用範圍,作者不能打擾創建一個。 PageLinks
方法本身不需要引用HtmlHelper,所以作者有效地通過了null
。
如果你想擴展方法的簽名:
public static string PageLinks
(this HtmlHelper helper, int val1, int val2, Func<someType,string> func)
它只是意味着參數助手將作爲null
傳遞。這是一個奇怪的結構,特別是在一本書中。它有一個非常冒險的氣味。
的通話可能被重述(或許更清晰)爲:
AuthorsHtmlExtensionsClass.PageLinks(null, 2, 3, i => "Page" + i)
只是讀,雖然我同一本書的MVC2副本,(?它的SportsStore應用程序的結束,右),史蒂芬已經改變代碼爲:
HtmlHelper html=null;
...
html.PageLinks(...)
我想這是一個更清楚一點。
謝謝! ! – 2010-10-25 14:48:42
該演員似乎是爲了獲得VS Intellicence,並愚弄服務器編譯器哈哈...結帳,如果你有參考(<%Refernce),你在那裏使用的擴展方法... – pjnovas 2010-10-25 14:41:04