Книга: Программирование мобильных устройств на платформе .NET Compact Framework
Листинг 14.7. Пример кода управления данными для GameData.cs
Листинг 14.7. Пример кода управления данными для GameData.cs
Option Strict On
'-----------------------------------------------------------------
'Код управления данными в памяти
'
'Этот код предназначен для управления представлением кода в памяти
'-----------------------------------------------------------------
Imports System
Friend Class GameData
'Массив списков для сохранения загружаемых данных
Private Shared m_vocabularyWords_All As _
System.Collections.ArrayList
Private Shared m_vocabularyWords_Nouns As _
System.Collections.ArrayList
Private Shared m_vocabularyWords Verbs As _
System.Collections.ArrayList
Private Shared m_vocabularyWords_Adjectives As _
System.Collections.ArrayList
Private Shared m_vocabularyWords Adverbs As _
System.Collections.ArrayList
Private Shared m_vocabularyWords_Prepositions As _
System.Collections.ArrayList
Public Shared ReadOnly Property _
isGameDataInitialized() As Boolean
Get
'Инициализация данных игры, если слова загружены
Return Not (m_vocabularyWords_All Is Nothing)
End Get
End Property
'Возвращает коллекцию всех имеющихся слов
Public Shared ReadOnly Property _
AllWords() As System.Collections.ArrayList
Get
'Загрузить данные, если они не были инициализированы
If (m_vocabularyWords_All Is Nothing) Then
InitializeGameVocabulary()
End If
Return m_vocabularyWords_All
End Get
End property
'Возвращает коллекцию всех имеющихся имен существительных
Public Shared ReadOnly Property _
Nouns() As System.Collections.ArrayList
Get
'Загрузить данные, если они не были инициализированы
If (m_vocabularyWords_Nouns Is Nothing) Then
InitializeGameVocabulary()
End If
Return m_vocabularyWords_Nouns
End Get
End Property
'==========================================================
'Загружает данные из нашей базы данных
'==========================================================
Public Shared Sub 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
Dim dataReader As System.Data.IDataReader
dataReader = DatabaseAccess.GetListOfWords()
Dim newWord As VocabularyWord
'Обойти все записи
While (dataReader.Read())
Dim thisword_gender As VocabularyWord.WordGender
Dim thisword_function As VocabularyWord.WordFunction
thisword_gender = CType(dataReader.GetInt32( _
DatabaseAccess.DS_WORDS_COLUMNINDEX_GERMANGENDER), _
VocabularyWord.WordGender)
thisword_function = CType(dataReader.GetInt32( _
DatabaseAccess.DS_WORDS_COLUMNINDEX_WORDFUNCTION), _
VocabularyWord.WordFunction)
'Поместить данные для только что считанного слова в класс
newWord = New VocabularyWord(dataReader.GetString( _
DatabaseAccess.DS_WORDS_COLUMNINDEX_ENGLISHWORD), dataReader.GetString( _
DatabaseAccess.DS_WORDS_COLUMNINDEX_GERMANWORD), _
thisword_gender, thisword_function)
'Добавить новое слово в массив списков
m_vocabularyWords_All.Add(newWord)
'Слова могут принадлежать нескольким группам, поэтому
'необходимо выполнить проверку с использованием операции логического И
'для проверки того, что слово относится к данной категории
If ((newWord.getWordFunction And _
VocabularyWord.WordFunction.Noun) <> 0) Then
m_vocabularyWords_Nouns.Add(newWord)
End If
If ((newWord.getWordFunction And _
VocabularyWord.WordFunction.Verb) <> 0)
Then m_vocabularyWords_Verbs.Add(newWord)
End If
If ((newWord.getWordFunction And _
VocabularyWord.WordFunction.Adjective) <> 0) Then
m_vocabularyWords_Adjectives.Add(newWord)
End If
If ((newWord.getWordFunction And _
VocabularyWord.WordFunction.Adverb) <> 0) Then
m_vocabularyWords_Adverbs.Add(newWord)
End If
If ((newWord.getWordFunction And _
VocabularyWord.WordFunction.Preposition) <> 0) Then
m_vocabularyWords_Prepositions.Add(newWord)
End If
End While
'Закрыть объект DataReader
dataReader.Close()
End Sub
End Class
- Листинг 14.1. Простой пример создания и использования объекта ADO.NET DataSet
- Листинг 14.2. Использование параметра XMLWriteMode при сохранении объекта ADO.NET DataSet
- Листинг 14.3. Сравнение производительности различных вариантов доступа к данным с использованием объектов DataSet
- Листинг 14.4. Результаты тестирования производительности при использовании пользовательского формата данных вместо объектов DataSet
- Листинг 14.5. Пример пользовательского управления данными — код, помещаемый в форму Form1.cs
- Листинг 14.6. Пример кода управления данными для DatabaseAccess.cs
- Листинг 14.7. Пример кода управления данными для GameData.cs
- Листинг 14.8. Пример кода управления данными для VocabularyWord.cs
- Примеры к главе 14 (данные)
- Пример установочного скрипта
- Пример из практики
- Листинг 10.1. (simpleid.c) Отображение идентификаторов пользователя и группы
- Основные "рычаги" управления производительностью
- ПРИМЕР ПРОСТОЙ ПРОГРАММЫ НА ЯЗЫКЕ СИ
- Категорийный менеджмент. Курс управления ассортиментом в рознице
- Глава 5 Агрессивные формы кода и борьба с ними
- Примеры получения статистики
- Пример применения метода «пять почему»
- Пример 12-8. Частота встречаемости отдельных слов
- 1.2.5. Пример программы