加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 类型Cast Cast Precedence

发布时间:2020-12-15 19:38:58 所属栏目:百科 来源:网络整理
导读:今天我遇到了一个场景,同时在我的应用程序中实现了搜索功能,让我感到困惑.看看这个片段: public string GetFirstProductName(SortedListstring,object itemsList) { for (int i = 0; i itemsList.Values.Count; i++) { if (itemsList.Values[i] is Product)
今天我遇到了一个场景,同时在我的应用程序中实现了搜索功能,让我感到困惑.看看这个片段:

public string GetFirstProductName(SortedList<string,object> itemsList) {
    for (int i = 0; i < itemsList.Values.Count; i++) {
        if (itemsList.Values[i] is Product)
           // Doesn't Compile:
           // return (Product)itemsList.Values[i].ProductName;

           // Does compile. Precedence for the "." higher than the cast?
           return ((Product)itemsList.Values[i]).ProductName;
        }
    }
}

那么,演员的优先权是什么?是演员吗? as关键字是什么?是操作符,它的优先级是什么?

解决方法

它非常简单.

如果你没有将转换包装在括号中..你正在转换整个表达式:

return (Product)itemsList.Values[i].ProductName;
//              |______________________________|

您实际上是将一个字符串转换为Product.鉴于:

return ((Product)itemsList.Values[i]).ProductName;
//     |____________________________|

只投射那部分,允许.访问产品的属性.希望这些酒吧有助于更清楚地向您展示差异.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读