Чтение онлайн

ЖАНРЫ

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

'Отобразить курсор ожидания

System.Windows.Forms.Cursor.Current = _

System.Windows.Forms.Cursors.WaitCursor

'Начать с известной даты.

Dim newDate As System.DateTime newDate = System.DateTime.Today

changeDayOfTravel_CustomArrays(TEST_CREDIT_CARD, newDate)

'ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ!!!

'HE СЛЕДУЕТ использовать вызовы сборщика мусора в готовом программном

'коде. Это ЗАМЕДЛЯЕТ работу приложения.

System.GC.Collect

Const testNumber As Integer = 0

'Запустить таймер теста

PerformanceSampling.StartSample(testNumber, "Custom Array implementation")

'Запустить тест!

Dim testCount As Integer

For testCount = 1 To NUMBER_TEST_ITERATIONS

'Передвинуть дату вперед на один день

newDate = newDate.AddDays(1)

Dim numberRecordsChanged As Integer

'Просмотреть все имена, используя СТРОКИ

numberRecordsChanged = _

changeDayOfTravel_CustomArrays(ТЕST_CREDIT_CARD, newDate)

'Убедиться в нормальном выполнении теста

If (numberRecordsChanged <> 1) Then

MsgBox("No matching records found. Test aborted!")

Return

End If

Next

'Получить время выполнения теста

PerformanceSampling.StopSample(testNumber)

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

System.Windows.Forms.Cursor.Current = _

System.Windows.Forms.Cursors.Default

'Отобразить результаты теста

Dim runInfo As String = NUMBER_TEST_ITERATIONS.ToString + _

"x" + DUMMY_ROWS_OF_DATA.ToString + ": " MsgBox(runInfo + _

PerformanceSampling.GetSampleDurationText(testNumber))

End Sub

Private Function changeDayOfTravel_CustomArrays( _

ByVal creditCardNumber As String, ByVal newTravelDate _

As System.DateTime) As Integer

Dim numberRecordsChanged As Integer

'Просмотреть каждый элемент массива

Dim index As Integer

For index = 0 To DUMMY_ROWS_OF_DATA

Dim currentCreditCard As String

currentCreditCard = m_data_creditCards(index)

'Обновить запись при наличии совпадения

If (creditCardNumber = currentCreditCard) Then

'Изменить дату поездки

Dim currentTravelDate As System.DateTime = _

m_data_travelDates(index)

'Увеличить значение счетчика обновлений только при несовпадении данных

If (currentTravelDate <> newTravelDate) Then

m_data_travelDates(index) = _

newTravelDate

numberRecordsChanged = numberRecordsChanged + 1

End If

End If

Next

'Возвратить количество обновленных записей

Return numberRecordsChanged

End Function

Private Sub buttonRunTest_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles buttonRunTest.Click

createDataSet

changeDayOfTravel_test

End Sub

Листинг 14.5. Пример пользовательского управления данными — код, помещаемый в форму Form1.cs

'Создает базу данных

Private Sub buttonCreateDatabase_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles buttonCreateDatabase.Click

DatabaseAccess.CreateAndFillDatabase

End Sub

'Загружает данные из базы данных и отображает их

Private Sub buttonLoadGameData_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles buttonLoadGameData.Click

'Очистить текстовое окно

TextBox1.Text = ""

'Загрузить данные для слов

GameData.InitializeGameVocabulary

'Обойти все слова и добавить их в текстовый список

Dim thisStringBuilder As System.Text.StringBuilder

thisStringBuilder = New System.Text.StringBuilder

Dim thisWord As VocabularyWord

For Each thisWord In GameData.AllWords

thisStringBuilder.Append(thisWord.EnglishWord)

thisStringBuilder.Append(" = ")

thisStringBuilder.Append( _

thisWord.GermanWordWithArticleIfExists)

thisStringBuilder.Append(vbCrLf) 'Новая строка

Next

'Отобразить список слов в текстовом окне

TextBox1.Text = thisStringBuilder.ToString

End Sub

Листинг 14.6. Пример кода управления данными для DatabaseAccess.cs
Поделиться с друзьями: