Я просматриваю некоторый старый код C # .NET в приложении ASP.NET, чтобы убедиться, что все SqlConnections заключены в с использованием блоков.
Я знаю, что с использованием - это то же самое, что и try / finally , где он удаляет объект в finally независимо от того, происходит в try . Если у меня есть метод, который возвращает значение внутри с использованием , даже если выполнение покидает метод при возврате, он все равно вызывает .Dispose () для моего объекта до / во время / после возвращения?
public static SqlCommand getSqlCommand(string strSql, string strConnect){
using (SqlConnection con = new SqlConnection(strConnect))
{
con.Open();
SqlCommand cmd = GetSqlCommand();
cmd.Connection = con;
cmd.CommandText = strSql;
return cmd;
}
}
Обновление: Принимается тот ответ, который, я думаю, лучше всего отвечает на мой вопрос, но учтите, что этот ответ поймал глупость этого кода, что я возвращаю команду, которая использует удаленное соединение! : P