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

  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();

 }

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

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

using System;

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

//Хранит данные слова из словаря

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

internal class VocabularyWord {

 [System.FlagsAttribute] //Значения можно объединять с помощью операции

                         //логического ИЛИ

 public enum WordFunction {

  Noun = 1,

  Verb = 2,

  Pronoun = 4,

  Adverb = 8,

  Adjective = 16,

  Preposition = 32,

  Phrase = 64

 }

 public enum WordGender {

  notApplicable = 0,

  Masculine = 1,

  Feminine = 2,

  Neuter = 3,

 }

 private string m_englishWord;

 private string m_germanWord;

 private VocabularyWord.WordGender m_germanGender;

 private VocabularyWord.WordFunction m_wordFunction;

 public string EnglishWord{

  get {

   return m_englishWord;

  }

 }

 public string GermanWord{

  get {

   return m_germanWord;

  }

 }

 public WordFunction getWordFunction {

  get {

   return m_wordFunction;

  }

 }

 public WordGender GermanGender{

  get {

   return m_germanGender;

  }

 }

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

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

 //{например, 'der', 'die', 'das'), если он существует

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

 public string GermanWordWithArticleIfExists {

  get {

   if (m_germanGender == WordGender.notApplicable) {

    return this.GermanWord;

   }

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