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

  //Если мы покидаем узел Name, то должны вернуться

  //обратно в узел UserInfo

  case ReadLocation.inName: {

   currentReadLocation = ReadLocation.inUserInfo;

   break;

  }

  //Если мы покидаем узел FirstName, то должны вернуться

  //обратно в узел Name

  case ReadLocation.inFirstName: {

   currentReadLocation = ReadLocation.inName;

   break;

  }

  //Если мы покидаем узел LastName, то должны вернуться

  //обратно в узел Name

  case ReadLocation.inLastName: {

   currentReadLocation = ReadLocation.inName;

   break;

  }

  //Если мы покидаем узел UserID, то должны вернуться

  //обратно в узел UserInfo

  case ReadLocation.inUserID: {

   currentReadLocation = ReadLocation.inUserInfo;

   break;

  }

  //Если мы покидаем узел UserInfo, то мы только что

  //закончили чтение данных в узлах UserID, FirstName

  //и LastName.

  //

  //Можно выйти из цикла, поскольку у нас уже есть вся

  //информация, которую мы хотели получить!

  case ReadLocation.inUserInfo: {

   return false; //Анализ должен быть прекращен

  }

  }

  return true; //Продолжить анализ

 }


 private static void LoadHelper_NewElementEncountered(string nodeName,ref ReadLocation currentReadLocation) {

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

  //Мы вошли в новый элемент!

  //

  //B какое состояние переход возможен, зависит от того, в

  //каком состоянии мы находимся в данный момент

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

  switch (currentReadLocation) {

  //Если мы находимся в узле AllMyData, то переход возможен

  //в узлы, которые указаны ниже

  case (ReadLocation.inAllMyData): {

   if (nodeName == XMI_USERINFO_TAG) {

    currentReadLocation = ReadLocation.inUserInfo;

   }

   break;

  }

  //Если мы находимся в узле UserInfo, то переход возможен

  //в узлы, которые указаны ниже

  case (ReadLocation.inUserInfo): {

   if (nodeName == XML_USERID_TAG) {

    currentReadLocation = ReadLocation.inUserID;

   } else if (nodeName == XML_NAMEINFO_TAG) {

    currentReadLocation = ReadLocation.inName;

   }

   break;

  }

  //Если мы находимся в узле Name, то переход возможен

  //в узлы, которые указаны ниже

  case (ReadLocation.inName): {

   if (nodeName == XML_FIRSTNAME_TAG) {

    currentReadLocation = ReadLocation.inFirstName;

   } else if (nodeName == XML_LASTNAME_TAG) {

    currentReadLocation = ReadLocation.inLastName;

   }

   break;

  }

  }

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

} //Конец класса

Повышение производительности приложения перекладыванием работы на другие программы

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

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

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

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

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

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

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

Роберт Лав

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