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

c# – 为什么我可以安全地转换为int而不是转换为int?

发布时间:2020-12-15 20:52:44 所属栏目:百科 来源:网络整理
导读:为什么这样做: ComboBox cb = sender as ComboBox;int validSelection = Convert.ToInt32(cb.Tag);if (cb.SelectedIndex != validSelection) { cb.SelectedIndex = validSelection;} …但是这个: ComboBox cb = sender as ComboBox;int validSelection = (
为什么这样做:

ComboBox cb = sender as ComboBox;
int validSelection = Convert.ToInt32(cb.Tag);
if (cb.SelectedIndex != validSelection) {
    cb.SelectedIndex = validSelection;
}

…但是这个:

ComboBox cb = sender as ComboBox;
int validSelection = (int)cb.Tag; // <-- fails
if (cb.SelectedIndex != validSelection) {
    cb.SelectedIndex = validSelection;
}

…错误输出“对象未设置为对象的引用”?

解决方法

那是因为 a conversion is not the same thing as a cast.

cb.Tag可能是一个字符串,而不是一个int,一个不能直接转换为另一个. Convert.ToInt32()实际上解析字符串并使用转换后的值创建一个新的int.

强制转换仅尝试将类型的实例解释为另一种类型的实例.

(编辑:李大同)

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

    推荐文章
      热点阅读