.NET 4.x Область видимости локальных переменных в catch - C#
Формулировка задачи:
Вот упрощённый пример:
Почему в catch переменная tResult не видна?
Как решить проблему с областью видимости?
Выдаёт ошибку только в последнем варианте:
Ошибка 13) Невозможно использовать локальную переменную "tResult" до ее объявления
public static void fA(){ reClError tResult=new reClError(true);//Своя структура tResult.rErrorTextList[0]="Текст";//Видит переменную tResult try{ tResult.rErrorTextList[0]="Текст";//Видит переменную tResult в try }catch(System.Exception ex){ tResult.rErrorTextList[0]="Текст";//НЕ видит переменную tResult в catch } }
Решение задачи: «.NET 4.x Область видимости локальных переменных в catch»
textual
Листинг программы
namespace group1{ public struct myStruct{ public string Pole; } class MyClass{ public void fFun1(){ int R1; try{ R1 = 4;//видимая переменная, можно присвоить } catch (System.Exception ex){ R1 = 5;//видимая переменная, можно присвоить } } public void fFun2(){ myStruct pG = new myStruct(); try{ pG.Pole = "1";//видимая переменная, можно присвоить } catch (System.Exception ex){ pG.Pole = "2";//В предыдущем проекте тут выдавалась ошибка без явных причин } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д