我正在查看MVC3 nuget
包中的一些代码,我注意到控制器中的某些方法使用了virtual
,如public virtual ActionResult WhatEver()
以及其他我以前总是看到的方法,public ActionResult WhatEver2()
。
为什么会有人这样做?有什么好处?
答案 0 :(得分:3)
唯一可能的好处是您可以在继承类中覆盖该方法。
如果不了解库的详细信息以及此方法在其中的位置,很难说具体的好处是什么。假设它是一个CMS库,ActionResult返回一个对话框。标记该方法虚拟可能允许您(库的使用者)子类化控制器并以某种方式修改对话框的行为。