using   (SqlConnection   cn   =   new   SqlConnection(CONNECTION_STRING)) 
                                {                                         cn.Open();                                         SqlDataAdapter   da   =GetSqlDataAdapter(cn); 
                                          
                        } 
                        static   SqlDataAdapter   GetSqlDataAdapter(SqlConnection   cn) 
                        { 
                                string   strSQL; 
                                strSQL   =   "SELECT   OrderID,   ProductID,   Quantity,   UnitPrice   "   + 
                                                  "FROM   [Order   Details]   WHERE   OrderID   =   @OrderID   "   + 
                                                  "ORDER   BY   ProductID;"; 
                                SqlDataAdapter   da   =   new   SqlDataAdapter(strSQL,   cn); 
                                da.SelectCommand.Parameters.AddWithValue("@OrderID",   ORDER_ID); 
                                return   da; 
                        }                 } 
这是ado。net的例子,我很奇怪其中的using范围 
在using中使用了SqlDataAdapter方法,而SqlDataAdapter方法在using的范围外,那么这里的using自动释放资源功能释放延伸到SqlDataAdapter方法中,因为using的释放应该在使用完SqlDataAdapter方法后 
很不明白这里的using对SqlDataAdapter方法的影响

解决方案 »

  1.   

    没看出什么问题.
    第一行的using不是指命名空间,而是资源的自动释放,相当于try{}catch{}finally{}
    可能我描述得不清楚,你再找一下资料吧
      

  2.   

    using ----   定義範圍,在範圍之外的物件將被處置。當 using 陳述式到達結尾處時,或者當例外狀況 (Exception) 擲回且程式控制權在陳述式結束之前已離開陳述式區塊時,using 陳述式就可以結束。