Подскажите пожалуйста, как прервать выполнение обработчика события Button_Click при совпадении определённого условия? Code: private void crypt_button_Click(object sender, RoutedEventArgs e) { if (true) прервать выполнение обработчика, как? //тут много кода }
Ваш вопрос ввел меня несколько в ступор. Я так понимаю, что у будет выполняться какое-то действие, пока не будет найден нужный результат? Тогда тебе потребуется while -do Code: bool test = false; int i = 0; do { //пример i++; test = i > 10 ? true: false;//если i больше 10 то пишем false if(i>10)//альтернатива с else { test = true; } else { test = false; } }while(test==false)//здесь условие
Code: private void crypt_button_Click(object sender, RoutedEventArgs e) { if (...) return; //тут много кода } или Code: private void crypt_button_Click(object sender, RoutedEventArgs e) { try { if (...) throw new Exception(); //тут много кода } catch(Exception e) { //Делаем что-то } }
Аналогия неуместна. Исключения не слишком замедляют программу. Да и во многих языках (в основном интерпретируемых) исключения вообще часто ипользуются для контроля потока выполнения.
Аналогия вполне уместна. Речь идёт и не о скорости выполнения кода.Вы вообще вдумайтесь - то, что предложили Вы, в данной ситуации, а именно её мы и рассматриваем и не берем примеры, которые имеют место быть в других языках или ситуациях, это все равно что сделать два while-do цикла. Причем второй нужен будет, что бы выйти их первого. Exception на то и Exception, уж простите за тавтологию - что бы выявлять и обрабатывать отдельные моменты. И в приведенной Вами ситуаци - это все равно, что гвозди микроскопом закалачивать.
Если рассматривать только данную конкретную ситуацию, то согласен полностью. Да я это и не оспаривал. В общем случает этот способ может быть полезен.