Xamarin Forms NavigationPage不是,但是if语句说它不是null

时间:2018-11-28 14:26:58

标签: xamarin null comparison

简而言之,我正在尝试确定NavigationPage是否为null,但是我遇到了一个奇怪的问题。

if (!ReferenceEquals(navigationPage, null))
{
     await navigationPage.PushAsync(page);
}

(这是navigationPage!= null)我将其更改为此名称,以查看这是否有帮助,但没有运气。本质上,每次我通过HomePage加载新页面时,调试器中的navigationPage都等于null,但是当我在其上运行if并说它是否不等于null时,不管调试器说的是null,if语句都返回false它不为空。在我两次加载页面两次(与页面无关)后,应用程序第三次崩溃时提示:“尝试执行navigationPage.PushAsync时,对象为空引用。我已经检查了一下,我相信这是因为navigationPage为null。 / p>

我不知道调试器说的是不是不正确的。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

通常会使用

await Navigation.PushAsync(page);

和Xamarin.Forms将找到当前页面正在使用的NavigationPage的实例,因此不确定为什么要使用NavigationPage的实例(navigationPage)而不是使用推荐的方法如本document所述。

但是我不能说,如果不共享您正在使用的更多代码,最好是MCVE,为什么您的navigationPage实例会被清空。