UWP 事件覆盖 base.onnavigatedto

UWP event override base.onnavigatedto

我有一个简单的问题,每当我重写像 OnNavigatedTo()OnApplytemplate(),有一行写成base.Onnavigatedto()base.something....

这行代码是做什么的?我通常会删除那条线,我应该保留还是删除它?谢谢

当您创建新页面时,它默认继承自页面基础 class。 class 也有 OnNavigatedTo 的实现。调用 base.OnNavigatedTo 调用基础 classes 实现。

一般来说,当从基础 class 继承时,您希望通过添加来扩展它的功能。因此,您需要 运行 原始实现,然后添加您自己的代码。

删除它基本上就是在说:我想将行为更改为我指定的行为。

一般来说,把它放在那里是个好习惯,因为你可能不知道基础 class 在那里做什么,它可能会破坏东西(或者只是无关紧要,如果基础 class 仅将其作为要覆盖的集成点提供。

举个例子:

您可能希望在每次有人导航到新页面时进行记录。您可以先创建一个页面,而不是将代码放在每个页面中,我们可以调用 LoggingPage 并在那里覆盖 OnNavigatedTo 以进行日志记录。然后我们可以让所有其他页面继承自该页面并免费获得日志记录。但是,如果在其中一个页面上覆盖 OnNavigatedTo 并删除基本调用,该页面将不再进行日志记录,因为不再调用基本 class 实现。