Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > goto....


Автор: 4ybaka 2.1.2008, 22:26
 smile 

появилась необходимость использовать goto в C#...но вот не дали.проблема в том,что метка,куда он должен перейти находится ДО того места,где стоит goto.исходя из примеров в мсдне,она должна стоять после...но насколько я помню из курса ассемблера - можно просто прогнать сборку файла 2 раза и все будет хорошо.так вот возник вопрос - как прогнать?мне просто казалось,что студия уже способна сама определить,есть ли метка или нет даже еще до сборки...

ЗЫ: или подскажите,как лучше разрешить ситуацию: идет обработка файла,и тут вылетает exception,после которого впринципе можно продолжить обработку файла.как вернуться в цикл обработки?

Автор: 1stain 2.1.2008, 22:59
имхо goto можно использовать:
    [1]  для выхода из вложенных циклов
    [2]  для переходов в switch/case
    [3]  если вы - компилятор
может есть еще случаи корректного использования goto, только я лично использовал сабж только в случаях 1 и 2

наверное задачу можно сделать примерно так:
Код

    using (StreamReader reader = new StreamReader(...))
    {
        while (reader.Peek() != -1)
        {
            try
            {
                // Работа с файлом
            }
            catch (Exception ex)
            {
                if (ex is IOException) // Отсекаем исключения, связанные с вводом-выводом
                    throw;
                // Обработка исключения
            }
        }
    }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)