生手的初级问题(关于New关键字)
SqlCommandBuilder   thisBuilder   =   new   SqlCommandBuilder(thisAdapter)   DataSet   thisDataSet   =   new   DataSet()   ; 
 以上两句各是声明各自类的一个实例 
 而下面这句: 
 DataRow   thisRow   =   thisDataSet.Tables[ "Customers "].NewRow() 
 写法却不同于上面, 
 如果我用类似 
 DataRow   thisRow   =   new   DataRow()   的语句,该如何实现? 
 (这句话是错的,编译不通过) 
 再下面一句: 
 string   abc   ; 
 与 
 DataRow   thisRow   =   thisDataSet.Tables[ "Customers "].NewRow() 
 有何区别? 
 我如何才能知道哪些要用new关键字声明,而哪些不用?   
------解决方案--------------------构造方法是保护或者私有时则不允许用new创建对象。   
 DataRow在调用NewRow时还构造了行的结构,如有多少个字段,每个字段是什么属性,而用new则无法构成这些。
------解决方案--------------------DataRow thisRow = thisDataSet.Tables[ "Customers "].NewRow() 
 是按照这个table的结构 增加一个新行,相当于执行一个方法或者函数。而不是来new的 
 string abc ; 
 与 
 DataRow thisRow = thisDataSet.Tables[ "Customers "].NewRow() 
 有何区别? 
 第一个是生命一个变量 未分配空间。 
 第二个是一个table 执行了一个增加新行的方法
------解决方案--------------------//按照我的理解 DataRow thisRow = thisDataSet.Tables[ "Customers "].NewRow() 
 //就是声明了 DataRow 的一个实例 thisRow, 
 //然后把 thisDataSet.Tables[ "Customers "].NewRow() 生成的一个新行赋给 thisRow这个实例   
 应该说声明了一个变量,然后把此变量的引用指向NewRow方法生成的一个新行(这才是实例)
------解决方案--------------------举个不太恰当的例子,你new一个女人容易, 
 Women w = new Women(); 
 但你要new一个女人肚子里的baby很复杂: 
 除了一些少儿不宜的过程,还要建立起women与baby的复杂关系, 
 Baby b = new Baby(Women, Father, Sex, MakeLoveTime....) 
 b.生存环境 = w.子宫 
 b.脐带 = w.血管 
 ..... 
 还不如把这个过程作为女人的一项功能: 
 Baby b = w.NewBaby(); 
 :)