Читаем Программирование мобильных устройств на платформе .NET Compact Framework полностью

  switch (kindOfTest) {

  case testType.textColumnLookup:

   //НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Просмотреть все имена, используя СТРОКИ

   numberRecordsChanged =

    changeDayOfTravel_textColumnLookup(ТЕST_CREDIT_CARD, newDate);

   break;

  case testType.cachedIndexLookup:

   //ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные индексы

   numberRecordsChanged =

    changeDayOfTravel_cachedColumnIndex(ТЕST_CREDIT_CARD, newDate);

   break;

  case testType.cachedColumnObject:

   //НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированные объекты

   //столбцов

   numberRecordsChanged =

    changeDayOfTravel_CachedColumns(TEST_CREDIT_CARD, newDate);

   break;

  }


  //Убедиться в том, что тест выполняется, как и ожидалось...

  if (numberRecordsChanged != 1) {

   System.Windows.Forms.MessageBox.Show("No matching records found. Test aborted!");

   return;

  }

 }


 //Получить время, которое потребовалось для выполнения теста

 PerformanceSampling.StopSample(testNumber);


 //Обычный курсор

 System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;


 //Отобразить результаты выполнения теста

 string runInfo = NUMBER_TEST_ITERATIONS.ToString + "x" +

  DUMMY_ROWS_OF_DATA.ToString + ": ";

 System.Windows.Forms.MessageBox.Show(runInfo +

  PerformanceSampling.GetSampleDurationText(testNumber));

}


//ФУНКЦИЯ ПОИСКА, ОБЛАДАЮЩАЯ НИЗКОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

private int changeDayOfTravel_ textColumnLookup(string creditCardNumber, System.DateTime newTravelDate) {

 int numberRecordsChanged = 0;


 //Найти имя таблицы

 System.Data.DataTable dataTable_Customers;


 //НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя

 //сравнение строк!

 dataTable_Customers = m_myDataSet.Tables[TABLE_NAME_PASSENGERINFO];


 foreach (System.Data.DataRow currentCustomerRow in dataTable_Customers.Rows) {

  string currentCreditCard;


  //НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя

  //сравнение строк!

  currentCreditCard = (string)currentCustomerRow[COLUMN_NAME_PASSENGER_CREDIT_CARD];


  //Проверить, является ли данная кредитная карточка искомой

  if (creditCardNumber == currentCreditCard) {

   //Изменить дату отъезда

   //НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя

   //сравнение строк!

   System.DateTime currentTravelDate =

    (System.DateTime)currentCustomerRow[COLUMN_NAME_DATE_OF_TRAVEL];

   if (currentTravelDate != newTravelDate) {

    //НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя

    //сравнение строк!

    currentCustomerRow[COLUMN_NAME_DATE_OF_TRAVEL] = newTravelDate;

    numberRecordsChanged++;

   }

  } //endif: сравнение строк

 } //end foreach

 return numberRecordsChanged; //Количество обновленных записей

}


Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Эндрю Хант , Дэвид Томас , А. Алексашин

Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT