该名称在当前上下文中不存在

时间:2014-10-27 03:00:41

标签: c# scope

case 3:我写了mutteer(ba, bb, bc, bd, be);这似乎给出了错误(名称ba在当前上下文中不存在)。 它在bb bc bdbe时也会出现同样的错误。

我做错了什么?

我删除了大部分不必要的代码:

static void menu()
    {
        int loop = 4;
        Console.WriteLine(" 3  Mutteer Voorraad");

        while (loop > 2)
            {
            var ans = Console.ReadLine();
            mp3();
            int choice = 0;
            if (int.TryParse(ans, out choice))
            {
                switch (choice)
                {
                    case 3:
                        Console.WriteLine("Mutteer Voorraad.");
                        mutteer(ba, bb,  bc, bd, be);
                        break;

                    default:
                        Console.WriteLine("Wrong selection!!!");
                        Thread.Sleep(1800);
                        Console.Clear();
                        goto top;
                }
            }
            else
            {
                Console.WriteLine("You must type numeric value only!!!");
                Thread.Sleep(1800);
                Console.Clear();
                goto top;
            }
        }
    }

static void mp3()
    {
        int ba = 500;
        int bb = 500;
        int bc = 500;
        int bd = 500;
        int be = 500;

        mp3players mp1 = new mp3players();
        mp1.id = 1;
        mp1.VR = ba;
     }

static void mutteer(int ba, int bb,  int bc, int bd, int be)
     {
        int i = 1;
        int a;

        startloop:
        while (i == 1)
            {
                Console.WriteLine("Wat is het Id van de mp3 speler?");
                try
                {
                    a = Convert.ToInt16(Console.ReadLine());
                }
                catch
                {
                    Console.WriteLine("Dat is geen nummer waarde!");
                    goto startloop;
                }

                if (a == 1)
                {
                    Console.WriteLine("Wat is het nieuwe voorraad");
                    try
                    {
                        i = 2;
                        ba = Convert.ToInt32(Console.ReadLine());
                    }
                    catch
                    {
                        Console.WriteLine("Dat is geen nummer waarde!");
                        goto startloop;
                    }
            }
        }

1 个答案:

答案 0 :(得分:1)

您需要将ba的声明和其他变量移动到全局范围。由于代码目前已编写,因此只能在mp3方法的范围内访问它们。你应该:

static int ba = 500;
static int bb = 500;
static int bc = 500;
static int bd = 500;
static int be = 500;

  static void mp3()
    {
    mp3players mp1 = new mp3players();
    mp1.id = 1;
    mp1.VR = ba;
    }