繁体   English   中英

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

[英]How can I use "is" to determine if the value of a parameter is a type of class?

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

_page.CurrentPage is Japanese.CardsTabPage

然而,它总是返回 false,即使当我使用调试器时它看起来应该是 true。 这是我将鼠标悬停在 CurrentPage 上时看到的内容:

在此处输入图片说明

有没有人知道可能有什么问题以及为什么会这样:

在此处输入图片说明

是不是返回true?

我也试过这个,但它不起作用:

在此处输入图片说明

您需要访问_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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM