覆盖方法时

时间:2014-05-21 07:13:59

标签: c#

在c#中覆盖方法时,最好在base.OverridenMethodName()之前或之后实现自己的逻辑吗?

3 个答案:

答案 0 :(得分:3)

你可以在反射器中检查这些东西。该框架在InternalOnNavigatedTo方法中完成了它的工作,该方法调用空的OnNavigatedTo虚拟方法:

protected virtual void OnNavigatedTo(NavigationEventArgs e) { }

您可以删除该行,它没有任何功能,但这不是一般规则。如果您不知道基本功能是做什么的,请将呼叫留在那里。

因此,根据基类功能的不同,您需要决定将代码放在何处。在调用基本方法之前或之后。

所以它是你的电话。检查基础中的任何微不足道的功能,并根据它决定地点。

答案 1 :(得分:1)

没有“最好的”。

base.OverrideMethodName是否可以在更专业的代码之前调用? 它是否设计成后调用?
它甚至设计为从更专业的版本调用?

如果您是基类的所有者,那么这完全取决于您的要求。

答案 2 :(得分:0)

恕我直言,从纯粹的逻辑观点来看,在方法开始之前,在做其他事情之前调用它可能更“清楚”。

但这完全取决于你的需求以及基础和覆盖方法的含义:根据这一点,你可以在开头,中间,结尾或根本不调用它!