Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从另一个If语句访问数据?_C# - Fatal编程技术网

C# 从另一个If语句访问数据?

C# 从另一个If语句访问数据?,c#,C#,我正在构建一个c#hangman游戏,我正在寻找从一个if语句到另一个的一些信息。我对编程完全陌生,所以如果这是一种愚蠢的方式,我很抱歉,如果有更好的方式,我会非常感激 不管怎样,代码如下: if (menyalternativ == "1") { //Här får spelare lägga till fem egna ord utöver det hårdkodade ordet "projektarbete" Conso

我正在构建一个c#hangman游戏,我正在寻找从一个if语句到另一个的一些信息。我对编程完全陌生,所以如果这是一种愚蠢的方式,我很抱歉,如果有更好的方式,我会非常感激

不管怎样,代码如下:

if (menyalternativ == "1")
        {


            //Här får spelare lägga till fem egna ord utöver det hårdkodade ordet "projektarbete"
            Console.WriteLine("\n\tLägg till 5 ord");

            Random rng = new Random();
            string[] ordlista = new string[5];
            ordlista[0] = Console.ReadLine();
            ordlista[1] = Console.ReadLine();
            ordlista[2] = Console.ReadLine();
            ordlista[3] = Console.ReadLine();
            ordlista[4] = Console.ReadLine();


            int index = rng.Next(5);
我想在后面的语句中使用ordlista[index]数据:

else if (menyalternativ == "3")            
        {
            string hemligtord = "projektarbete"; //This I would like to be the random word from earlier.
            char[] gissatord = new char[hemligtord.Length];
            char gissa;
            bool rättord = false;
            Kontroll kontroll = new Kontroll();
            for (int i = 0; i < gissatord.Length; i++)
            {
                gissatord[i] = '-';
            }
else if(menyalternativ==“3”)
{
string hemligtord=“projektarbete”;//我想成为前面的随机词。
char[]gissatord=新字符[hemligtord.Length];
查吉萨;
bool rättord=假;
Kontroll Kontroll=新的Kontroll();
for(int i=0;i

非常感谢所有帮助!

ordlista
数组是声明它的块的本地数组(即声明点之后相同大括号内的语句)

如果需要在另一个代码块中使用它,则必须在两个代码块都可见的范围内声明它。但是,在这种情况下,可能会出现逻辑错误,因为在处理
If
块之后,将永远不会输入
else If
,除非整个
If
else If链被封闭在一个循环中


如果在
If
语句之外有一个循环,并且希望使用
ordlista
在迭代之间传递数据,则需要在循环之外声明变量。否则,它将在每次迭代中重新初始化,从而无法达到最初的目的。

将变量设置为scope global。

将变量声明上移到第一个if语句上方。(将其置于“外部范围”)然后如何从相应菜单选项中的readline获取输入?至于读取输入。如果有意义,您也可以在
if
之前进行输入处理。(或者可以在if的每个子句内的函数中有条件地执行此操作)谢谢你的解释!我现在明白了我做错了什么。@ USS3303657,欢迎你!如果这解决了你的问题,请考虑点击旁边的灰色复选标记来接受答案。这会让其他网站访问者知道你的问题得到解决,并在堆栈溢出上为你赢得徽章。也许不是吗?那是OOP设计反模式1。