.NET 4.x Область видимости локальных переменных в catch - C#

Узнай цену своей работы

Формулировка задачи:

Вот упрощённый пример:
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
   }
}
Почему в catch переменная tResult не видна? Как решить проблему с областью видимости? Выдаёт ошибку только в последнем варианте: Ошибка 13) Невозможно использовать локальную переменную "tResult" до ее объявления

Решение задачи: «.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";//В предыдущем проекте тут выдавалась ошибка без явных причин
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы