Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
'Создать экземпляр вспомогательного класса,
'который расчленяет строку на три части
'Это неэкономный способ!
'------------------------------------------
workerClass1 = New WastefulWorkerClass(testArray(idx))
'Если средним словом является "blue", заменить его на "orange"
If (workerClass1.MiddleSegment = "blue") Then
'Заменить средний сегмент
workerClass1.MiddleSegment = "orange"
'Заменить
слово
testArray(idx) = workerClass1.getWholeString
End If
Next 'внутренний цикл
Next 'внешний цикл
'Получить время окончания теста
PerformanceSampling.StopSample(0)
MsgBox(PerformanceSampling.GetSampleDurationText(0))
End Sub
Листинг 8.4. Рабочий класс для первого тестового примера
Option Strict On
Imports System
Public Class WastefulWorkerClass
Private m_beginning_segment As String
Public Property BeginSegment As String
Get
Return m_beginning_segment
End Get
Set(ByVal Value As String)
m_beginning_segment = Value
End Set
End Property
Private m_middle_segment As String
Public Property MiddleSegment As String
Get
Return m_middle_segment
End Get
Set(ByVal Value As String)
m_middle_segment = Value
End Set
End Property
Private m_end_segment As String
Public Property EndSegment As String
Get
Return m_end_segment
End Get
Set(ByVal Value As String)
m_end_segment = Value
End Set
End Property
Public Sub New(ByVal in_word As String)
Dim index_segment1 As Integer
'Осуществляем поиск символов подчеркивания ("_") в строке
index_segment1 = in_word.IndexOf("_", 0)
'В случае отсутствия символов "_" все, что нам нужно, это
первый сегмент
If (index_segment1 = -1) Then
m_beginning_segment = in_word
m_middle_segment = ""
m_end segment = ""
Return
Else
'Если присутствует символ "_", отсечь его
'Если первым символом является "_", то первым сегментом будет ""
If (index_segment1 = 0) Then
m_beginning_segment = ""
Else
'Первый сегмент
m_beginning_segment = in_word.Substring(0, index_segment1)
End If
'Найти второй символ "_"
Dim index_segment2 As Integer
index_segment2 = in_word.IndexOf("_", index_segment1 + 1)
'Второй символ "_" отсутствует
If (index_segment2 = -1) Then
m_middle_segment = ""
m_end_segment = in_word.Substring(index_segment1 + 1)
Return
End If
'Установить последний сегмент
m_middle_segment = in_word.Substring(index_segment1 + 1, _
index_segment2 - index_segment1 - 1)
m_end_segment = in_word.Substring(index_segment2 + 1)
End If
End Sub
'Возвращает все три сегмента, объединенные символами "_"
Public Function getWholeString As String
Return m_beginning_segment + "_" + m_middle_segment + "_" + _
m_end_segment
End Function
End Class
Листинг 8.5. Тестовый пример, демонстрирующий уменьшение объема памяти, распределяемой для объектов (типичный образец улучшения первоначального варианта реализации интересующей нас функции)
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click
'Вызвать сборщик мусора, чтобы тест
'начинался с чистого состояния.
'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
'сборщика мусора в программах вручную будут приводить к снижению
'общей производительности приложений!
System.GC.Collect
Поделиться:
Популярные книги
Последний реанорец. Том I и Том II
1. Высшая Речь
Фантастика:
фэнтези
7.62
рейтинг книги
Хозяин Теней
1. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
На границе империй. Том 10. Часть 6
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Мастер Трав III
3. Мастер Трав
Фантастика:
фэнтези
рпг
фантастика: прочее
попаданцы
5.75
рейтинг книги
Лекарь Империи 7
7. Лекарь Империи
Фантастика:
городское фэнтези
аниме
боевая фантастика
попаданцы
5.00
рейтинг книги
Чехов книга 3
3. Адвокат Чехов
Фантастика:
попаданцы
альтернативная история
аниме
6.00
рейтинг книги
Газлайтер. Том 6
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Третий. Том 3
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Страж Кодекса. Книга VI
6. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Перешагнуть пропасть
1. Перешагнуть пропасть
Фантастика:
боевая фантастика
космическая фантастика
8.38
рейтинг книги
Наномашины, Кошмар Академии! Том 10
10. Первый среди карапузов
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Ким
Приключения:
исторические приключения
7.62
рейтинг книги
Его звали Тони. Книга 5
5. Щенки косуль
Фантастика:
городское фэнтези
технофэнтези
попаданцы
7.00
рейтинг книги
Эпоха Опустошителя. Том V
5. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00