日期:2014-05-18  浏览次数:20365 次

这里为什么要采用Clone()来生成SqlParameter[] ,而不直接返回cachedParms????????????
 
在学习pet shop 4.0 的SqlHepler类时候,有个地方不明白
/// <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;
  }



这里为什么要采用Clone()来生成SqlParameter[] ,而不直接返回cachedParms????????????

------解决方案--------------------
当您的问题得到解答并完成结帖操作,CSDN将按本帖提问分数的50%,做为可用分返还给您。无满意贴不返还可用分