访问变量范围之外的值

时间:2020-04-07 17:04:08

标签: c#

我是C#的新手,并尝试使用appium自动化窗口应用程序。我有以下代码

int i = -1;

foreach (var row in SummaryTableRows)
{
    i++;
    //Console.WriteLine(row.Text);
    if ((row.Text.Contains("cheq")) && (row.Text.Contains("acitve")))
    {
        var DemandData = FirstRow.Split(new[] { " " }, 
            StringSplitOptions.RemoveEmptyEntries);

        string Sub = DemandData[1];
        string Type = DemandData[0];
        bFlag = true;
        break;
    }
}

buttonBar.ExitFormBtn.Click();
buttonBar = null;
//Should be back to member form
SubCheq.SendKeys(Sub + Keys.Tab);

我想在if循环之外访问Sub和Type的值。在vb脚本中,这从来都不是问题,但在C#中,变量的范围似乎仅限于foreach块。所以我的问题是如何访问Sub和Type的值。

1 个答案:

答案 0 :(得分:0)

您不能访问超出其范围的变量。范围的字面意思是“可以在哪里访问变量”。因此,您要访问值,而无法访问值。此时,您可以在那里访问变量,这是新的scope

您可以做的是更改范围。如果要在特定块外使用变量,请在该块外声明。只需在循环外部声明sub(可能是type)。然后只在每个循环中设置insdie的值。

我不确定您为什么还要问,因为您已经i已经这样做了:int i = -1;是带有初始化的声明。 i++;i=i+1;的缩写,因此您需要在每个循环中重新确定它(新值恰好接近所有值)。您很多人想使用null或空字符串初始化的字符串,具体取决于您稍后对其进行的操作/如何检查foreach循环的0个问题。