为什么在声明ActionResult时使用`virtual`

时间:2012-08-18 16:11:40

标签: c# asp.net-mvc-3

我正在查看MVC3 nuget包中的一些代码,我注意到控制器中的某些方法使用了virtual,如public virtual ActionResult WhatEver()以及其他我以前总是看到的方法,public ActionResult WhatEver2()

为什么会有人这样做?有什么好处?

1 个答案:

答案 0 :(得分:3)

唯一可能的好处是您可以在继承类中覆盖该方法。

如果不了解库的详细信息以及此方法在其中的位置,很难说具体的好处是什么。假设它是一个CMS库,ActionResult返回一个对话框。标记该方法虚拟可能允许您(库的使用者)子类化控制器并以某种方式修改对话框的行为。