'-------------------------------------------------------
Dim workerClass1 As LessWastefulWorkerClass
workerClass1 = New LessWastefulWorkerClass
Dim outerLoop As Integer
For outerLoop = 1 To LOOP_SIZE
'Присвоить элементам массива значения, которые мы хотим использовать
'при тестировании ResetTestArray(testArray)
Dim topIndex As Integer = testArray.Length -1 Dim idx As Integer
For idx = 0 To topIndex
'---------------------------------------------------------
'Теперь вместо повторного распределения памяти для объекта
'нам достаточно лишь повторно воспользоваться им
'---------------------------------------------------------
'workerClass1 = new WastefulWorkerClass(
' testArray(topIndex))
workerClass1.ReuseClass(testArray(idx))
'Если средним словом является "blue", заменить его на "orange"
If (workerClass1.MiddleSegment = "blue") Then
'Заменить средний сегмент
workerClass1.MiddleSegment = "orange"
'Заменить слово
testArray(idx) = workerClass1.getWholeString
End If
Next ' внутренний цикл
Next 'внешний цикл
'Остановить секундомер!
PerformanceSampling.StopSample(1)
MsgBox(PerformanceSampling.GetSampleDurationText(1))
End Sub
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)