在c#中覆盖方法时,最好在base.OverridenMethodName()
之前或之后实现自己的逻辑吗?
答案 0 :(得分:3)
你可以在反射器中检查这些东西。该框架在InternalOnNavigatedTo方法中完成了它的工作,该方法调用空的OnNavigatedTo虚拟方法:
protected virtual void OnNavigatedTo(NavigationEventArgs e) { }
您可以删除该行,它没有任何功能,但这不是一般规则。如果您不知道基本功能是做什么的,请将呼叫留在那里。
因此,根据基类功能的不同,您需要决定将代码放在何处。在调用基本方法之前或之后。
所以它是你的电话。检查基础中的任何微不足道的功能,并根据它决定地点。
答案 1 :(得分:1)
没有“最好的”。
base.OverrideMethodName
是否可以在更专业的代码之前调用?
它是否设计成后调用?
它甚至设计为从更专业的版本调用?
如果您是基类的所有者,那么这完全取决于您的要求。
答案 2 :(得分:0)
恕我直言,从纯粹的逻辑观点来看,在方法开始之前,在做其他事情之前调用它可能更“清楚”。
但这完全取决于你的需求以及基础和覆盖方法的含义:根据这一点,你可以在开头,中间,结尾或根本不调用它!