我是否需要在C#中释放params的记忆

时间:2014-08-12 09:31:11

标签: c#

我正在使用下面的menioned代码将数据插入到SQL中,为此我使用了以下的menioned代码

 public void ExecuteSQLCommandWithParameters(string command,params object[] Values)
    {
        System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection();
        conn.ConnectionString = _connectionString;


        try
        {
            conn.Open();

            System.Data.SqlClient.SqlCommand com = new System.Data.SqlClient.SqlCommand(command, conn);
            for (int i = 0; i < Values.Length; i++)
            {
                com.Parameters.Add("@"+i.ToString(), Values[i]);
            }

            com.ExecuteNonQuery();
            com.Dispose();
            conn.Close();
            Values = null;


        }
        catch (Exception ex)
        {
            log.Error(string.Format("Error in ExecuteSQLCommand(), command {0}, exception: {1}", command, ex.Message));
        }
    }

上面提到的函数将执行一千次我的问题是它是否需要使NULL params object[] Values我的意思是我需要编写像

这样的代码
Values=null;

请建议我

1 个答案:

答案 0 :(得分:3)

不,没有必要。对数组的引用(即Values包含的内容)将在堆栈中,因此会自动丢弃在方法的末尾。

当垃圾收集器运行时,Values指向的实际数组将被删除,并且意识到没有人正在使用它。也就是说,当活动对象中没有更多对它的引用时。