【发布时间】:2021-03-09 14:35:01
【问题描述】:
我知道如果我将 as? 分配给一个变量,那么编译器就不会担心安全转换问题。 例如:
w:Wolf? = Wolf()
wolf = w as? Wolf
现在我可以使用变量 wolf 来调用 Wolf 的任何公共成员,而无需使用问号(无需安全调用)
但是如果as?位于 if 块内,并且 item 变量未分配。例如:
if (item as? CountryDataItem != null)
{
// code that is using *item*
}
else{
}
if 块 中的代码是否可以将 item 用作 CountryDataItem 而无需强制转换,并且编译器在使用 CountryDataItem 时不会注释安全调用 问题是因为该项目没有保存在任何变量中,所以我不确定编译器如何考虑他?
【问题讨论】: