首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

关于PetShop4.0 中 SQLHelper.cs 的有关问题

2012-02-03 
关于PetShop4.0 中 SQLHelper.cs 的问题SQLHelper.cs中提供的取出cache中的参数的方式如下:///summary//

关于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];  
}

[解决办法]
直接返回的是引用,

克隆返回的是对象
[解决办法]
克隆是在内存中直接操作的。

热点排行