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

C# 如何在C中复制全局变量?,c#,operating-system,cosmos,C#,Operating System,Cosmos,我在C中的一个循环中有一个变量在另一个循环中无法识别,我知道不可能在C中创建一个真正的全局变量,但是我想知道是否可以模拟一个。我的一些代码如下: foreach (string line in lines) { if (line.Contains("write")) { var tempctr = line.Replace("(", ""); var tempctr2 = line.Replace(")", ""); var ctr

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

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


类上的静态变量。完成。全局变量定义中的全局变量,即您必须处于同一过程中。标准C.

这里不需要全局变量。只需在循环外声明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中的变量作用域,例如:您不需要全局变量,您只需要将usrinput声明在一个作用域中,在您计划使用它的每个地方都可以访问它。我会把申报单放在前台。正如HimBromBeere所说,你需要仔细阅读scope。我怀疑这会对OP有所帮助,因为它写得非常简洁。事实上,OP缺乏语言基础,他/她应该如何理解你的答案?通过查找C语言参考中的术语,他/她应该学习。如果它不是那么基本,那么我会多写一点。