void myfunction(ref object obj){}void main()
{
     OracleCommand cmd = null;
     myfunction(ref cmd);
}为什么编译不通过??参数“1” : 无法从“ref System.Data.OracleClient.OracleCommand”转换为“ref object”

解决方案 »

  1.   

    void myfunction(ref object obj){}void main()
    {
         OracleCommand cmd = null;
         object obj = cmd;
         myfunction(ref obj);
    }
      

  2.   

    这样调用是不一样的。比如
    void myfunction(ref object obj)
    {
        obj = new OracleCommand();
    }
    这时cmd还是null
      

  3.   

    而且很奇怪,为什么OracleCommand 就不能 ref 呢?
      

  4.   

    ref 不能转,别说是OracleCommand类型,就是你的类型是简单的int类型,也不能这么用啊...为什么不直接这样呢?void myfunction(ref OracleCommand obj)
    {
        obj = new OracleCommand();
    }
      

  5.   

    别的object都可以ref啊。OracleCommand有什么特别么??
      

  6.   

    TO:
    别的object都可以ref啊可以吗?你做个实验吗?