我有一个正常的类叫做BaseView
虚拟方法DisplayView
。该方法调用GetHeader
和GetBody
虚拟方法来获取页面的内容。然后我会创建一个继承自BaseView
的类,并重写需要显示内容的方法,而不是基类的方式。C#继承最佳做法
我的问题是,虽然这很好,但在运行代码分析时,我被警告不要直接调用虚函数。
我应该在覆盖虚函数的基类上创建另一个类图层,并且只能从那里继承吗?
直接使用虚拟方法有什么缺点?
编辑:警告是:
CA2214:Microsoft.Usage:XXX包含导致 呼叫到由类定义的虚拟方法的调用链。审查意想不到的后果
请显示确切的警告消息 – 2011-12-14 11:07:19
在派生类方法实现中添加新的/覆盖关键字,可能会发出此警告。 – Maheep 2011-12-14 11:08:16