Литмир - Электронная Библиотека
Содержание  
A
A

//            определенный ранее в этой главе. Убедитесь в том, что

//            этот класс включен в проект

//ТЕСТОВАЯ ФУНКЦИЯ:

//Сложить 'n1' и 'n2' и возвратить результат

//в 'n3'

// Возвращаемое значение:

// TRUE: если результат положителен

// FALSE: если результат отрицателен

bool returnFalseIfLessThanZero_Add2Numbers(int n1, int n2, out int n3) {

 n3 = n1 + n2;

 //Результат меньше 0?

 if (n3 < 0) {

  return false;

 }

 return true;

}

//===========================================================

// ТЕСТОВАЯ ФУНКЦИЯ:

//

//Сложить 'n1' и 'n2' и возвратить результат

//в 'n3'

//

//Если 'n3' меньше 0, то функция ПЕРЕДАЕТ УПРАВЛЕНИЕ ОБРАБОТЧИКУ ИСКЛЮЧЕНИЙ.

//B противном случае возвращается TRUE

//===========================================================

bool exceptionIfLessThanZero_Add2Numbers(int n1, int n2, out int n3) {

 n3 = n1 + n2;

 //Результат меньше 0?

 if (n3 < 0) {

  throw new Ехсерtion("Результат меньше 0!");

 }

 return true;

}

//===========================================================

//Осуществляет многократные вызовы простой функции и

//измеряет общее время выполнения

//

//Вызываемая функция НЕ приводит к возбуждению исключений

//===========================================================

private void buttonRunNoExceptionCode_Click(object sender, System.EventArgs e) {

 const int TEST_NUMBER = 0;

 int numberIterations;

 numberIterations = System.Convert.ToInt32(textBoxNumberAttempts.Text);

 //Отобразить количество итераций, которые предстоит выполнить

 listBox1.Items.Add("=>" + numberIterations.ToString() + " итераций");

 int count_SumLessThanZero;

 int dataOut;

 //-------------------------------------------------------

 //Запустить таймер

 //-------------------------------------------------------

 PerformanceSampling.StartSample(TEST_NUMBER, "Исключения отсутствуют");

 //-------------------------------------------------------

 //Выполнить цикл, в котором осуществляется вызов функции

 //-------------------------------------------------------

 count_SumLessThanZero = 0;

 bool sumGreaterThanZero;

 for(int i = 0; i < numberIterations; i++) {

  //=========================

  //Вызвать тестовую функцию!

  //=========================

  sumGreaterThanZero = returnFalseIfLessThanZero_Add2Numbers(-2, -3, outdataOut);

  if (sumGreaterThanZero == false) {

   count_SumLessThanZero++;

  }

 } //конец цикла

 //-------------------------------------------------------

 //Остановить таймер

 //-------------------------------------------------------

 PerformanceSampling.StopSample(TEST_NUMBER);

 //-------------------------------------------------------

 //Показать результаты пользователю

 //-------------------------------------------------------

 if (count_SumLessThanZero == numberIterations) {

  System.Windows.Forms.MessageBox.Show("Тест выполнен");

  listBox1.Items.Add(PerformanceSampling.GetSampleDurationText(TEST_NUMBER));

 } else {

  System.Windows.Forms.MessageBox.Show("При выполнении теста возникали осложнения");

 }

}

//конец функции

//===========================================================

//Осуществляет многократные вызовы простой функции и

//измеряет общее время выполнения.

//

//Вызываемая функция ВОЗБУЖДАЕТ исключения

//===========================================================

private void buttonRunExceptionCode_Click(object sender, System.EventArgs e) {

 const int TEST_NUMBER = 1;

 //Получить количество итераций

 int numberIterations;

 numberIterations = System.Convert.ToInt32(textBoxNumberAttempts.Text);

 //Отобразить количество итераций, которые надлежит выполнить

61
{"b":"947732","o":1}