DataSet和string,bool不一样
它不是基元类型要实力化它必须使用new关键字 如:DataSet ds=new DataSet();

解决方案 »

  1.   

    string ,bool 以及结构等等,都是值类型,系统直接给你一个地址存放,所以不用实例,访问的其实就是某个地址下的内容,而这个地址由系统提供!用户可以不管!而对象、控件是地址类型 的变量,引用的是开始地址而已,引用前不实例的话,系统如何知道去哪引用啊!经对象空值其实也就是给一个地址指向空而已,以变它能被访问!不知这样说你能不能明白!
      

  2.   

    而实例new() 其实就是分配一个空间而已
    如果给一个具体的对象B给变量A,其实引用的还是原来那个变量!若B 的某些属性值改变,那么A 也相应的改变!
      

  3.   

    在.net中类于int、string这些成为强类型,他们在声明的时候系统会指派一个默认值,所以可以只声明
    但DataSet是一个类,类需要声明然后实例化(new) 
      

  4.   

    在你这个控件的初始化函数里加上
    DataSet ds1=new DataSet();
      

  5.   

    任何对象都要实例化。某些类型的实例过程稍微特殊一些。
    通用的实例化方式是new,通过重载类型的操作符,可以实现=实例化。