Я только что столкнулся с этой проблемой. Насколько мне известно, «str1» должен быть локальной переменной, и я могу создать новую переменную с тем же именем за пределами используемого кодового блока?Локальная переменная, объявленная внутри с использованием блока кода, на самом деле не является локальной переменной?
Конечно, я могу создать переменную с другим именем и двигаться дальше, но это действительно беспокоит меня. Может кто-нибудь объяснить это?
public int Execute(string sql, params SqlParameter[] parameters)
{
try
{
this.AddSql(sql, parameters);
using (var cmd = new SqlCommand(sql, this.connection))
{
var str1 = "";
}
//var str1 =""; // error because variable str1 is used above
//str1 =""; // this also causes an error because "Can not resolve symbol 'str1'"
}
catch (Exception e)
{
//...
}
return 0;
}
Итак, чтобы уточнить, вы не можете создать локальную переменную с именем «str1» вне структуры использования? – nmg49