我是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的值。
答案 0 :(得分:0)
您不能访问超出其范围的变量。范围的字面意思是“可以在哪里访问变量”。因此,您要访问值,而无法访问值。此时,您可以在那里访问变量,这是新的scope。
您可以做的是更改范围。如果要在特定块外使用变量,请在该块外声明。只需在循环外部声明sub(可能是type)。然后只在每个循环中设置insdie的值。
我不确定您为什么还要问,因为您已经i
已经这样做了:int i = -1;
是带有初始化的声明。 i++;
是i=i+1;
的缩写,因此您需要在每个循环中重新确定它(新值恰好接近所有值)。您很多人想使用null或空字符串初始化的字符串,具体取决于您稍后对其进行的操作/如何检查foreach循环的0个问题。