Переменная не существует в текущем контексте - PullRequest
0 голосов
/ 30 сентября 2018

(я новичок и только начал изучать C # на уровне колледжа / A, поэтому мой код действительно неэффективен).

В любом случае приведенный ниже код является лишь частью моей "CinemaBookingSystem" ипотому что моя переменная filmName объявлена ​​вне моего регистра переключателя, он говорит, что «filmName» не существует в этом контексте.Я попытался использовать "public static string filmname =" example ";"метод, но это не сработает, потому что я объявляю название фильма более одного раза в различных операторах if.

if (filmNum == 1)
    string filmName = "Teenage Horror Film";
if (filmNum == 2)
    ;
string filmName = "How I Live Now";
switch (filmNum)
{
    case 1:
    case 2:
        if (Age >= 15)
        {
            Console.WriteLine("What date do you want to watch the film? (Format : dd/mm/yyyy) :");
            DateTime dateChoice = DateTime.Parse(Console.ReadLine());
            DateTime now = DateTime.Now;
            DateTime limit = now.AddDays(7);
            if (dateChoice >= now && dateChoice <= limit)
            {
                Console.WriteLine("--------------------");
                Console.WriteLine("Aquinas Multiplex");
                Console.WriteLine("Film : {0}", filmName);
                Console.WriteLine("Date : {0}", dateChoice);
                Console.WriteLine("--------------------");
            }
            else
            {
                Console.WriteLine("Access denied - date is invalid");
            }
        }

        while (Age < 15)
        {
            Console.WriteLine("Access denied - You are too young");
        }
        break;
}

Ответы [ 2 ]

0 голосов
/ 30 сентября 2018

Вам нужно объявить это вне операторов if и просто присвоить значение внутри (убедитесь, что есть значение по умолчанию в случае, если ни один не запускается).Кроме того, у вас есть точка с запятой после ваших операторов if.

0 голосов
/ 30 сентября 2018

Кенни, поскольку вы объявляете переменную filmName в условии условия, она не доступна в switch.Вы должны объявить это до if:

string filmName = string.empty;
if (filmNum == 1) ;
        {
            filmName = "Teenage Horror Film";
        }
        if (filmNum == 2) ;
        {
            filmName = "How I Live Now";
        }

        switch (filmNum)
        {
            case 1: case 2:
                if (Age >= 15)
                {
                    Console.WriteLine("What date do you want to watch the film? (Format : dd/mm/yyyy) :");
                    DateTime dateChoice = DateTime.Parse(Console.ReadLine());
                    DateTime now = DateTime.Now;
                    DateTime limit = now.AddDays(7);
                    if (dateChoice >= now && dateChoice <= limit)
                    {
                        Console.WriteLine("--------------------");
                        Console.WriteLine("Aquinas Multiplex");
                        Console.WriteLine("Film : {0}", filmName);
                        Console.WriteLine("Date : {0}", dateChoice);
                        Console.WriteLine("--------------------");
                    }
                    else
                    {
                        Console.WriteLine("Access denied - date is invalid");
                    }
                }

                while (Age < 15)
                {
                    Console.WriteLine("Access denied - You are too young");
                }
                break;

        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...