读书人

关于PetShop4.0 中 SQLHelper.cs 的有

发布时间: 2012-02-03 22:02:47 作者: rapoo

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

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

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

读书人网 >asp.net

热点推荐