>Option Strict
>On Imports System
>Public Class LessWastefulWorkerClass
>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 ReuseClass(ByVal in_word As String)
> '----------------------------------------------
> 'Для повторного использования класса необходимо
> 'полностью очистить внутреннее состояние
> '----------------------------------------------
> m_beginning_segment = ""
> m_middle_segment = ""
> m_end_segment = ""
> Dim index_segment1 As Integer
> 'Осуществляем поиск символов подчеркивания ("_") в строке
> index_segment1 = in_word.IndexOf("_", 0)
> 'В случае отсутствия символов "_" все, что нам нужно, это первый сегмент
> If (index_segment1 = -1) Then
>  m_beginning_segment = in_word
>  Return
> Else
>  'Если присутствует символ "_", отсечь его
>  If (index_segment1 = 0) Then
>  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_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.7. Тестовый пример, демонстрирующий значительное уменьшение объема памяти, распределяемой для объектов (типичный образец существенной алгоритмической оптимизации первоначального варианта реализации интересующей нас функции)
>Private Sub Button5 Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles Button5.Click
> 'Вызвать сборщик мусора, чтобы тест
> 'начинался с чистого состояния.
> 'ПРИБЕГАЙТЕ К ЭТОЙ МЕРЕ ТОЛЬКО В ЦЕЛЯХ ТЕСТИРОВАНИЯ! Вызовы
> 'сборщика мусора в программах вручную будут приводить к снижению
> 'общей производительности приложений!
> System.GC.Collect()
> Dim testArray() As String = Nothing