C#类型转换问题

JW森 2013-04-14 11:30:27


Type type = typeof(int);
object objvalue = 111;
(type)objvalue;

//注:这里的type是动态的,上面只是一个例子,应该怎样把objvalue转成动态类型int
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
JW森 2013-04-14
  • 打赏
  • 举报
回复
引用 4 楼 sp1234 的回复:
我知道你要把 Type 写入一个变量。问题是这有什么意义?你如果说 objvalue 的类型就动态改变了,这就是纯粹理解错误了。 因此,写 type value = (type)objvalue; 这种代码毫无意义。你还是说明更有意义的使用场景吧,否则仅仅是梦魇,别人也不知道你做这个梦想干什么。
type是动态的 如:

typeof(int)
typeof(double)
typeof(DateTime)
.
.
.
我想根据这个Type的具体类型来强转一下object类型的值,是否可行
wanghui0380 2013-04-14
  • 打赏
  • 举报
回复
拉到把,能换微软找换了,根本不必等到你来处理 反射为啥出来的是object,convert.changeType为啥出来的还是object 看看微软自己的Convert.changeType的方法签名 public static Object ChangeType( Object value, Type conversionType ) 按你们的理解,你都给他type了,他就应该是type,那微软还为啥要返回object呢?? 当然这玩意换成泛型版本到可以 public static T ChangeType<T>( Object value, ) { if(value is T) retrun (T)value; (T)Convert.ChangeType(value,typeof(T)); } 这样能换就能换,换不了就出异常,估计异常的情况多些,因为大多数人自己写对象一般都不会去实现IConvertible这个一般情况木啥大用处的接口
  • 打赏
  • 举报
回复
我知道你要把 Type 写入一个变量。问题是这有什么意义?你如果说 objvalue 的类型就动态改变了,这就是纯粹理解错误了。 因此,写 type value = (type)objvalue; 这种代码毫无意义。你还是说明更有意义的使用场景吧,否则仅仅是梦魇,别人也不知道你做这个梦想干什么。
JW森 2013-04-14
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
“动态类型”是什么概念? objvalue如果是int,那么不管你在其前边写什么,它也是int,不会变成别的。你还以为objvalue的类型可以变?
...不是变objectvalue,是

type value = (type)objvalue;
的意思
  • 打赏
  • 举报
回复
“动态类型”是什么概念? objvalue如果是int,那么不管你在其前边写什么,它也是int,不会变成别的。你还以为objvalue的类型可以变?

110,545

社区成员

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

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

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