如何使用“ is”确定参数的值是否为类的类型?

时间:2019-04-28 06:31:06

标签: c# xamarin xamarin.forms

我正在尝试测试应用程序的当前页面是否为CardsTabPage,如下所示:

_page.CurrentPage is Japanese.CardsTabPage

但是,即使当我使用调试器时,它总是返回false,似乎它应该显示为true。这是我将鼠标悬停在CurrentPage上时看到的:

enter image description here

是否有人知道什么地方可能出问题以及为什么这样做:

enter image description here

返回的不是真的吗?

我也尝试过此方法,但是它不起作用:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要访问_page.CurrentPage.CurrentPage,但是您不能直接这样做,因为_page.CurrentPage的编译时类型仅为Page。您需要先将其强制转换为NavigationPage,然后使用该属性的CurrentPage

如果您的编译器支持模式匹配,则可以执行以下操作:

if (_page.CurrentPage is NavigationPage np && np.CurrentPage is Japanese.CardsTabPage)

否则,您将需要以下内容:

if (_page.CurrentPage is NavigationPage &&
    ((NavigationPage) _page.CurrentPage).CurrentPage is Japanese.CardsTabPage)