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

Листинг 14.7. Пример кода управления данными для GameData.cs

Листинг 14.7. Пример кода управления данными для GameData.cs

//-----------------------------------------------------------------
//Код управления данными в памяти
//
//Этот код предназначен для управления представлением кода в памяти
//-----------------------------------------------------------------
using System;
internal class GameData {
 //Массив списков для сохранения загружаемых данных
 private static System.Collections.ArrayList m_vocabularyWords All;
 private static System.Collections.ArrayList m_vocabularyWords_Nouns;
 private static System.Collections.ArrayList m_vocabularyWords_Verbs;
 private static System.Collections.ArrayList m_vocabularyWords_Adjectives;
 private static System.Collections.ArrayList m_vocabularyWords_Adverbs;
 private static System.Collections.ArrayList m_vocabularyWords_Prepositions;
 public static bool isGameDataInitialized {
  //Инициализация данных игры, если слова загружены
  get {
   return (m_vocabularyWords_All != null);
  }
 }
 //Возвращает коллекцию всех имеющихся слов
 public static System.Collections.ArrayList AllWords {
  get {
   //Загрузить данные, если они не были инициализированы
   if (m_vocabularyWords_All == null) {
    InitializeGameVocabulary();
   }
   return m_vocabularyWords_All;
  }
 }
 //Возвращает коллекцию всех имеющихся имен существительных
 public static System.Collections.ArrayList Nouns {
  get {
   //Загрузить данные, если они не были инициализированы
   if (m_vocabularyWords_Nouns == null) {
    InitializeGameVocabulary();
   }
   return m_vocabularyWords_Nouns;
  }
 }
 //==========================================================
 //Загружает данные из нашей базы данных
 //==========================================================
 static public void InitializeGameVocabulary() {
  //Создать новый массив списков для хранения наших слов
  m_vocabularyWords_All = new System.Collections.ArrayList();
  m_vocabularyWords_Nouns = new System.Collections.ArrayList();
  m_vocabularyWords Verbs = new System.Collections.ArrayList();
  m_vocabularyWords_Adjectives = new System.Collections.ArrayList();
  m_vocabularyWords_Adverbs = new System.Collections.ArrayList();
  m_vocabularyWords_Prepositions = new System.Collections.ArrayList();
  System.Data.IDataReader dataReader;
  dataReader = DatabaseAccess.GetListOfWords();
  VocabularyWord newWord;
  //Обойти все записи
  while (dataReader.Read()) {
   //Поместить данные для только что считанного слова в класс
   newWord = new VocabularyWord(
    dataReader.GetString(DatabaseAccess.DS_WORDS_COLUMNINDEX_ENGLISHWORD),
    dataReader.GetString(DatabaseAccess.DS_WORDS COLUMNINDEX_GERMANWORD),
    (VocabularyWord.WordGender)dataReader.GetInt32(DatabaseAccess.DS_WORDS_COLUMNINDEX_GERMANGENDER),
    (VocabularyWord.WordFunction)dataReader.GetInt32(DatabaseAccess.DS_WORDS_COLUMNINDEX_WORDFUNCTION));
   //Добавить новое слово в массив списков
   m_vocabularyWords_All.Add(newWord);
   //Слова могут принадлежать нескольким группам, поэтому необходимо
   //выполнить проверку с использованием операции логического И
   //для проверки того, что слово относится к данной категории
   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Noun) ! = 0) {
    m_vocabularyWords_Nouns.Add(newWord);
   }
   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Verb) != 0) {
    m_vocabularyWords_Verbs.Add(newWord);
   }
   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Adjective) != 0) {
    m_vocabularyWords Adjectives.Add(newWord);
   }
   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Adverb) != 0) {
    m_vocabularyWords Adverbs.Add(newWord);
   }
   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Preposition) != 0) {
    m_vocabularyWords_Prepositions.Add(newWord);
   }
  }
  //Закрыть объект
  DataReader dataReader.Close();
 }
} //Конец класса

Оглавление книги

Оглавление статьи/книги

Генерация: 1.147. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз