如:
string sql="select count(1) from table where condition..."; 
sqlcommand cmd=new sqlcommand(sql,cn); 
... 
object objNum=cmd.ExecuteSclare(); if(objNum!=null) return int.parse(objNum.ToString());//拆箱 算吗?但我看一篇文章说:“被装过箱的对象才能被拆箱?”   那上面是不是没被装过箱啊?
大家帮我看看,烦啊!

解决方案 »

  1.   

     我觉得算拆箱,是说只有被装过箱的值类型才能被拆箱,原因是cmd.ExecuteSclare()返回的Object类型已经是装过箱的了
     本来它是返回查询到的第一行第一列的是吧,这个肯定是值类型的,既然它返回的是Object说明他是装过箱的了
      

  2.   

    算 引用类型到值类型
    不过我觉得 前提是objNum不为null
      

  3.   

    不是拆箱...ExecuteSclare方法的返回值是object类型,sql语句"select count(1)..."的返回值是一定是int值类型...ExecuteSclare方法中肯定有装箱操作...但是你这里用的是int.parse方法而不是类型转换...所以只有装箱没有拆箱...
      

  4.   

    double box1 =11.222; //定义一个值类量 
    object objBox =box1; //装箱
    double dubUnBox = (double)objBox; //拆箱
      

  5.   


    言之有理,这里被我忽略了,这里的ToString()首先就已经破坏了拆箱过程所需的Object了,所以不是拆箱了,而且Parse()只是一个类型转换
      

  6.   

    你的理解还有点小问题...首先拆箱不需要的Object,引用类型直接类型转换到值类型就是拆箱...其次int.Parse方法不是类型转换而是对字符串解析然后直接创建一个值类型...