Type type = typeof(int);
            object objvalue = 111;
            (type)objvalue;//注:这里的type是动态的,上面只是一个例子,应该怎样把objvalue转成动态类型int
C#对象

解决方案 »

  1.   

    “动态类型”是什么概念?objvalue如果是int,那么不管你在其前边写什么,它也是int,不会变成别的。你还以为objvalue的类型可以变?
      

  2.   

    http://bbs.csdn.net/topics/360039451
      

  3.   

    ...不是变objectvalue,是type value = (type)objvalue;的意思
      

  4.   

    我知道你要把 Type 写入一个变量。问题是这有什么意义?你如果说 objvalue 的类型就动态改变了,这就是纯粹理解错误了。因此,写 type value = (type)objvalue; 这种代码毫无意义。你还是说明更有意义的使用场景吧,否则仅仅是梦魇,别人也不知道你做这个梦想干什么。
      

  5.   

    拉到把,能换微软找换了,根本不必等到你来处理反射为啥出来的是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这个一般情况木啥大用处的接口
      

  6.   

    type是动态的
    如:typeof(int)
    typeof(double)
    typeof(DateTime)
    .
    .
    .我想根据这个Type的具体类型来强转一下object类型的值,是否可行