如何在C#中复制全局变量



我在C#的一个循环中有一个变量在另一个循环无法识别,我知道在C#中创建一个真正的全局变量是不可能的,但我想知道是否可以模仿一个。我的一些代码是这样的:

foreach (string line in lines)
{
if (line.Contains("write"))
{
var tempctr = line.Replace("(", "");
var tempctr2 = line.Replace(")", "");
var ctr = tempctr2.Remove(0, 6);
Console.Write(ctr);
}
else if (line.Contains("sayinput"))
{
Console.Write(usrinput);
}
else if (line.Contains("inputget"))
{
var tempctr = line.Replace("(", "");
var tempctr2 = line.Replace(")", "");
var ctr = tempctr2.Remove(0, 9);
Console.Write(ctr);
string usrinput = Console.ReadLine();
}
}

代码从文本文件中读取,并根据文本中的内容运行特定命令。我的意图是用inputget创建一个变量,并用sayinput将其吐出来。第一个usrinput引用是一个错误,因为变量是在循环之外声明的。

这里不需要全局变量。只需在循环外声明usrinput,如下所示:

string usrinput = "";
foreach (string line in lines)
{
if (line.Contains("write"))
{
//...
}
else if (line.Contains("sayinput"))
{
Console.Write(usrinput);
}
else if (line.Contains("inputget"))
{
// ...
usrinput = Console.ReadLine();
}
}

不可能在C#、中创建真正的全局变量

类上的静态变量。完成。在任何全局变量的定义中都是全局的(即您必须处于同一过程中(。以及标准C#。

最新更新