微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

为什么这样做:

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.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐