Облать видимости переменной, не понимаю почему не видит
- bool[] _Form1Opened=new bool[20]; //состояние закрытия Form1
- bool[] _Form1Closed = new bool[20]; //состояние открытия Form1
- bool needInitOpenGL=true;
- private bool _needInitOpenGL(bool[] _Form1Opened, bool[] _Form1Closed)
- {
- bool Form1Opened;
- for (int i = 0; i < _Form1Opened.Length && i < _Form1Closed.Length; i++)
- {
- if (_Form1Opened == true && _Form1Closed == false)
- {
- Form1Opened = false;
- }
- }
- return Form1Opened;
- }
компилятор выдает ошибку что переменной Form1Opened не присвоено значение, а значит он думает что Form1Opened - локальная переменная условного оператора. На ++ такой проблемы бы не было
Вообще не понимаю как это исправить, область видимости надо определить? и как?
Мне не понятно почему компилятор считает что переменная Form1Opened в условном операторе является локальной, когда локальной её никто не делал. Мне надо чтоб сработал оператор Form1Opened = false; для переменной Form1Opened уровня переменной в функции
В ++ если не обьявлена локальная переменная, то можно работать с переменной уровня внутри функции из любого оператора, хоть из условного оператора, хоть из цикла
В # так нельзя чтоли? Если нельзя то как эти переменные использовать?
Form1Opened - локальная переменная в функции :private bool _needInitOpenGL()
и её надо определить до строки :return Form1Opened;
сделайте объявление в виде :bool Form1Opened=true;
У вас массив переменных. Вы не можете выполнить такую операцию присваивания.
А в 7 строке стоит инициализировать переменную значением по умолчанию, т.к. в случае не выполнения условия
значение не определено.
а Form1Opened - нет .