Попытка объявить переменные функцией в полном скрипте в C# - PullRequest
0 голосов
/ 17 июня 2020


В настоящее время я пытаюсь объявлять переменные из функции для всего скрипта, например:

namespace TestCsharp
{
    class Program
    {
        static void Main()
        {
             // Some script
             bool bool1 = true;
             string string1 = "string";
             double double1 = 3.4;
        }
       static void Function()
       {
            // More script
            if (bool1 == true)
            {
                // Script again
            }
       }
    }
}


НО появляется ошибка. Я не могу использовать bool1 в этой другой функции.
НЕТ, я не могу использовать свои переменные, такие как args, в Function ().
НЕТ, я не могу определить это в начале моего скрипта.
Так может кто-нибудь мне помочь?

1 Ответ

2 голосов
/ 17 июня 2020

Эти переменные являются локальными для функции Main. Следовательно, ваш Function().

не может их «увидеть». Я предлагаю вам ознакомиться с областью видимости переменных, но быстрый ответ:

namespace TestCsharp
{
    class Program
    {
        // Note: Declaring at *class* scope (and static)
        static bool bool1;
        static string string1;
        static double double1;

        static void Main()
        {
             // Some script
             bool1 = true;
             string1 = "string";
             double1 = 3.4;
        }
       static void Function()
       {
            // More script
            if (bool1 == true)
            {
                // Script again
            }
       }
    }
}

Как указано в комментариях madreflection , область видимости переменной является важной c и объясняет полученные вами результаты.

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