类型转换的问题,如何转换类型为强类型

大帮手软件 2006-12-19 12:31:52
类型转换的问题,如何转换类型为强类型
object tmpobject = Convert.ChangeType(converter.ConvertFromString(colorAsString), props["BackColor"].GetValue(textBox2).GetType());
//textBox2.BackColor = tmpobject; //会报错
//props["BackColor"].SetValue(textBox2, tmpobject); //会报错
textBox2.BackColor = (System.Drawing.Color)tmpobject; //不报错
...全文
246 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ivony 2006-12-19
  • 打赏
  • 举报
回复
你想干什么?
如果你可以确定这个
textBox2.BackColor
也就是说你代码中具有确定类型,强制类型转换即可
textBox2.BackColor = (System.Drawing.Color)tmpobject

但如果这行代码你也不确定,如这行代码也是反射出来的。
那么事实上反射给属性赋值是不需要先强制类型转换的。
csLius 2006-12-19
  • 打赏
  • 举报
回复
第一段代码,类型转得不对吧..
diandian82 2006-12-19
  • 打赏
  • 举报
回复
使用as,不用那么复杂
colaxu 2006-12-19
  • 打赏
  • 举报
回复
C#中很多都不能隐性转换.象这种和object的转换,最好都加牵制转换.
diandian82 2006-12-19
  • 打赏
  • 举报
回复
直接用反射不就行了。
大帮手软件 2006-12-19
  • 打赏
  • 举报
回复
Color myColor = button1.BackColor;
System.ComponentModel.TypeConverter converter =
System.ComponentModel.TypeDescriptor.GetConverter(myColor);
string colorAsString = converter.ConvertToString(myColor);
PropertyDescriptorCollection props = System.ComponentModel.TypeDescriptor.GetProperties(button1);
props["BackColor"].SetValue(button2, converter.ConvertFromString(colorAsString));

我做的是动态加载控件,属性都保存的数据库中.所以不能用强制类型转换
大帮手软件 2006-12-19
  • 打赏
  • 举报
回复
自己搞定.

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧