-1

我在 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引用是一个错误,因为该变量是在循环之外声明的。

4

2 回答 2

1

您在这里不需要全局变量。只需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();
    }
}
于 2020-04-16T07:08:49.900 回答
0

在 C# 中无法创建真正的全局变量,

类上的静态变量。完毕。Global 在定义任何全局变量时(即你必须在同一个进程中)。和标准 C#。

于 2020-04-16T07:04:06.957 回答