页的下面一行的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