MessageBox.Show("col1 = " + rdr.GetInt32(0) +
                    "col2 = " + rdr.GetInt32(1) +
                    "col3 = " + rdr.GetSqlMoney(2));一直不明白这个问题
这里的
rdr.GetInt32(0)返回的是int型的数据(rdr是 SqlCeDataReader 对象,用GetInt32(0)返回的是int型的)
怎么可以直接和字符串相加呢?
而且既然能显示出来
程序没有错误

解决方案 »

  1.   

    因为Object有ToString方法,所以任何变量和字符串相加都可以.
    int i = 0;
    string str = i.ToString();和string str = i + "";效果是一样的.
      

  2.   

    Show方法只需一个string类型的参数、所以是以括号内的最终结果来判断的
    而"//字符串"+int 也是行得通的、为什么string+int也可以计算?因为int+int=int、string+int=string(因为类型不同、默认为字符串拼接、而不是单纯的数学运算)
      

  3.   

    因为 string 重载了 + 运算。
    string operaror+(int x)
    {
        return this + x.ToString();
    }