可以.在需要初始化的时候用NEW,也就是需要创建实例时

解决方案 »

  1.   

    TO thinkingforever(努力学习):OracleCommand Cmd=null;
    OracleDataReader objReader=null;objReader=Cmd.ExecuteReader();那为什么这里的DATAREADER对象,没有创建实例就对它赋值了呢?
      

  2.   

    那为什么这里的DATAREADER对象,没有创建实例就对它赋值了呢?
    肯定不能执行啊!
      

  3.   

    不用NEW只是定义,没有分配空间,实例化的时候用new就可以了。
      

  4.   

    建议看看引用类型和值类型的介绍:我认为 引用与c语言里的指针相似,OracleCommand Cmd
    该语句定义(声明)了一个引用类型的变量Cmd ,该变量用于存储对一个OracleCommand 实例的引用
    OracleCommand Cmd=null 将该变量的“值",设置为空--空即是什么实例也不引用
    (new OracleCommand ())
    该句指示系统创建OracleCommand的一个实例,并返回一个对实例的引用Cmd =new OracleCommand ()
    该句指示系统创建OracleCommand的一个实例,并返回一个对实例的引用,并将该引用赋予Cmd 一般来讲:
    在类,结构的定义中使用OracleCommand Cmd=null 来定义(声明)一个什么都没有引用的Cmd
    然后在其他地方(如初始化函数、构造函数中)将一个实例的引用赋予Cmd(Cmd =new OracleCommand ())以通过Cmd实现对实例的操作,当任何引用都不再该实例时,系统垃圾回收器将把该实例回收,释放系统资源
      

  5.   

    不用new就没有给其分配空间,所以先定义,然后在你使用它的时候给他分配空间,这样可以更好使用内存空间。
      

  6.   

    Cmd=null是无法执行的!会报错“未将对象引用到实例”!