读取输入不同菜单c#

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取输入不同菜单c#相关的知识,希望对你有一定的参考价值。

我试图创建一个菜单,其中数组将存储来自用户的输入(输入数字1),然后管理员可以在不同的菜单中检查数组的内容(输入数字9),但我似乎无法让它在内部可读管理菜单....我省略了登录和startmenu的方法,该部分工作。 - 代码的相关部分目前看起来像这样:

    static void Main(string[] args)
    {
        while (true)
        {
            int enteredNumber;

            int[] myArray = new int[10];

            Startmenu();
            enteredNumber = Convert.ToInt32(Console.ReadLine());

            if (enteredNumber == 1)
            {                    
                for (int i = 0; i < 1; i++)
                {
                    Console.WriteLine("Insert Number:");
                    myArray[i] = Convert.ToInt32(Console.ReadLine());
                }
                Console.Clear();
                Console.WriteLine("blabla");
                Thread.Sleep(2000);
                Console.Clear();
            }

            if (enteredNumber == 9)
            {
                if (Login(1234, 3) == true)
                {
                    foreach (int number in myArray)
                    {
                        Console.WriteLine(number);
                    }
                }
            }
        } 
    }
答案

试试这个:

static void Main(string[] args)
{
    int[] myArray = new int[10];

    while (true)
    {
        int enteredNumber;           
        // int[] myArray = new int[10]; //when you create a new int array , the array not contain values.
        Startmenu();
        enteredNumber = Convert.ToInt32(Console.ReadLine());

        if (enteredNumber == 1)
        {                    
            for (int i = 0; i < 1; i++)
            {
                Console.WriteLine("Insert Number:");
                myArray[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.Clear();
            Console.WriteLine("blabla");
            Thread.Sleep(2000);
            Console.Clear();
        }

        if (enteredNumber == 9)
        {
            if (Login(1234, 3) == true)
            {
                foreach (int number in myArray)
                {
                    Console.WriteLine(number);
                }
            }
        }
    } 
}

当你创建一个新的int数组时,数组不包含任何值,你在while循环中创建了一个数组,然后,int [] myArray = new int [10];当你再次开始循环时,这是空的,在开始循环之前放置创建。

另一答案

正如@henoc salinas回答你需要把你

int[] myArray = new int[10];

在while循环之外,因为每次输入新选项时它都会重新初始化并从之前的数组中删除所有旧值。

但是如果你有不同的功能,并且你想在那里访问那些值,请在全局范围内声明数组

int[] myArray = new int[10];
static void Main(string[] args)
{
    while (true)
    {
        int enteredNumber;           
        // int[] myArray = new int[10]; //when you create a new int array , the array not contain values.
        Startmenu();
        enteredNumber = Convert.ToInt32(Console.ReadLine());

        if (enteredNumber == 1)
        {                    
            for (int i = 0; i < 1; i++)
            {
                Console.WriteLine("Insert Number:");
                myArray[i] = Convert.ToInt32(Console.ReadLine());
            }
            Console.Clear();
            Console.WriteLine("blabla");
            Thread.Sleep(2000);
            Console.Clear();
        }

        if (enteredNumber == 9)
        {
            if (Login(1234, 3) == true)
            {
                foreach (int number in myArray)
                {
                    Console.WriteLine(number);
                }
            }
        }
    } 
}

像这样。!

以上是关于读取输入不同菜单c#的主要内容,如果未能解决你的问题,请参考以下文章

如何在片段中使用与活动中不同的菜单?

隐藏/显示不同片段的操作栏选项菜单项

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

常用的几个JQuery代码片段

上下文菜单不适用于两个片段

12个用得着的 JQuery 代码片段