Шрифт:
//Присвоить элементам массива значения, которые мы хотим
//использовать при тестировании
ResetTestArray(ref testArray);
int topIndex = testArray.Length - 1;
for (int idx = 0; idx <= topIndex; idx++) {
//------------------------------------------
//Создать экземпляр вспомогательного класса,
//который расчленяет строку на три части
//
//Это неэкономный способ!
//-------------------------------------------
workerClass1 = new WastefulWorkerClass(testArray[idx]);
//Если средним словом является "blue", заменить его на "orange"
if (workerClass1.MiddleSegment == "blue") {
//Заменить средний сегмент
workerClass1.MiddleSegment = "orange";
//Заменить слово
testArray[idx] = workerClass1.getWholeString;
}
} //конец внутреннего цикла for
}//конец внешнего цикла for
//Получить время окончания теста
PerformanceSampling.StopSample(0);
System.Windows.Forms.MessageBox.Show(PerformanceSampling.GetSampleDurationText(0));
}
Листинг 8.4. Рабочий класс для первого тестового примера
using System;
public class WastefulWorkerClass {
private string m_beginning_segment;
public string BeginSegment {
get { return m_beginning_segment; }
set { m_beginning_segment = value; }
}
private string m_middle_segment;
public string MiddleSegment {
get { return m_middle_segment; }
set { m_middle_segment = value; }
}
private string m_end_segment;
public string EndSegment {
get { return m_end_segment; }
set { m_end_segment = value; }
}
public WastefulWorkexClass(string in_word) {
int index_segment1;
//Осуществляем поиск символов подчеркивания ("_") в строке
index_segment1 = in_word.IndexOf("_",0);
//B случае отсутствия символов "_" все, что нам нужно, это первый сегмент
if (index_segment1 == -1) {
m_beginning_segment = in_word;
m_middle_segment = "";
m_end_segment = "";
return;
}
//Если присутствует символ "_", усечь его
else {
//Если первым символом является "_", то первым сегментом будет ""
if (index_segment1 == 0) {
m_beginning_segment = "";
} else {
//Первый сегмент
m_beginning_segment = in_word.Substring(0, index_segment1);
}
//Найти второй символ "_"
int index_segment2;
index_segment2 = in_word.IndexOf("_", index_segment1 + 1);
//Второй символ "_" отсутствует
if (index_segment2 == -1) {
m_middle_segment = "";
m_end_segment = in_word.Substring(index_segment1 + 1);
return;
}
//Установить последний сегмент
m_middle_segment = in_word.Substring(index_segment1 + 1, index_segment2 - index_segment1 -1);
m_end_segment = in word.Substring(index segment2 + 1);
}
<