项目场景:
C#窗体应用中,用到控件的Tag定义状态,根据状态值判断是否处以某种状态,对它进行一个状态切换。
问题描述
获取某控件Tag状态值与设定值做对比时直接显示转换,出现指定的转换无效错误。
System.InvalidCastException
HResult=0x80004002
Message=指定的转换无效。
原因分析:
控件的Tag指与对象关联的用户定义数据。直接使用显示转换与对应类型比较,但实际它是一个Object对象,直接显示转换是不行的,所以回报错。
解决方案:
转换失败主要是它无法直接转换,换强制转换即可,当然输入的值是能转换成对应的值才行。比如使用Convert系统对象,它可以直接将一个基本数据类型转换成另外一个基本数据类型。