Я столкнулся с проблемой, связанной с областью применения используемых переменных.
код:
int row_no, upflag, downflag;
for (int i = count; i > 0; i--)
{
asd = ds1.Tables[out_table].Rows[i][59].ToString();
int com1 = string.Compare(asd, "Upstream");
int com2 = string.Compare(asd, "Downstream");
if (com1 == 0 || com2 == 0)
{
row_no = i;
if (com1 == 0)
upflag = 1;
else
downflag = 1;
break;
}
}
if (upflag == 1)//
{
string val1 = ds1.Tables[out_table].Rows[count][59].ToString();
string val2 = ds1.Tables[out_table].Rows[(count - 1)][59].ToString();
}
в этом коде, в последнем условии if (upflag == 1),мой VS2010 показывает красную линию под флагом «вверх» и говорит, что использует неназначенную локальную переменную «флаг».
почему это так?Это было совершенно нормально в c ++, но здесь в нескольких вложенных циклах / условии значение, присвоенное переменной внутри скобок, не отражается за их пределами, даже если переменная объявлена перед циклом.
Пожалуйста,помощь