关于PetShop4.0 中 SQLHelper.cs 的问题
SQLHelper.cs中提供的取出cache中的参数的方式如下: 
 ///    <summary>  
 ///   Retrieve   cached   parameters 
 ///    </summary>  
 ///    <param   name= "cacheKey "> key   used   to   lookup   parameters </param>  
 ///    <returns> Cached   SqlParamters   array </returns>  
 public   static   SqlParameter[]   GetCachedParameters(string   cacheKey)   { 
             SqlParameter[]   cachedParms   =   (SqlParameter[])parmCache[cacheKey];   
             if   (cachedParms   ==   null) 
                         return   null;   
             SqlParameter[]   clonedParms   =   new   SqlParameter[cachedParms.Length];   
             for   (int   i   =   0,   j   =   cachedParms.Length;   i    <   j;   i++) 
                         clonedParms[i]   =   (SqlParameter)((ICloneable)cachedParms[i]).Clone();   
             return   clonedParms; 
 }   
 是把参数克隆了一遍返回的。这和直接返回参数(下面的写法)有什么区别呢?   
 public   static   SqlParameter[]   GetCachedParameters(string   cacheKey){ 
             return   (SqlParameter[])parmCache[cacheKey];    
 }
------解决方案--------------------直接返回的是引用,   
 克隆返回的是对象
------解决方案--------------------克隆是在内存中直接操作的。