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

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

概述为什么这样做: ComboBox cb = sender as ComboBox;int validSelection = Convert.ToInt32(cb.Tag);if (cb.SelectedIndex != validSelection) { cb.SelectedIndex = validSelection;} …但是这个: ComboBox cb = sender a 为什么这样做:

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; // <-- failsif (cb.Selectedindex != valIDSelection) {    cb.Selectedindex = valIDSelection;}

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

解决方法 那是因为 a conversion is not the same thing as a cast.

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

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

总结

以上是内存溢出为你收集整理的c# – 为什么我可以安全地转换为int而不是转换为int?全部内容,希望文章能够帮你解决c# – 为什么我可以安全地转换为int而不是转换为int?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1226332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存