实现一个方法,装箱与拆箱的问题!

写这篇文章的目的是因为碰到了问题。

 方法名: public T ExecuteFirstResult<T>(string sql)
 核心代码:(T)cmd.ExecuteScalar();
 调用:DBHelper.DB.ExecuteFirstResult<int>(sql)
--代码是可以经过编译的

概念:
    装箱是说,将值类型转换为引用类型,反之将引用类型转换为值类型则为拆箱。

拆箱则必须强制转换,所以调用代码运行会发生错误,无法将object拆箱,则必须强制转换,比如说Convert.ToInt32()

问题是我这里使用了T,之所以是T,是因为想让调用方便,不需要再做ObjectConvert.

解决方法:
public static object ChangeType(object value, Type conversionType);// 返回一个指定类型的对象,该对象的值等效于指定的对象。

return (T)Convert.ChangeType(o, typeof(T)); 完美解决!!

感谢小林哥。

posted on 2012-08-14 13:29  star-star  阅读(126)  评论(0编辑  收藏  举报

导航