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

Листинг 8.8. Рабочий класс для третьего тестового примера

Листинг 8.8. Рабочий класс для третьего тестового примера

using System;
public class LessAllocationsWorkerClass {
 public string MiddleSegment {
  set { m_middleSegmentNew= value; }
 }
 private string m_middleSegmentNew;
 private int m_index_1st_undscore;
 private int m_index_2nd undscore;
 private string m_stringIn;
 public void ReuseClass(string in_word) {
  //----------------------------------------------
  //Для повторного использования класса необходимо
  //полностью очистить внутреннее состояние
  //----------------------------------------------
  m_index_1st_undscore = -1;
  m_index_2nd_undscore = -1;
  m_middleSegmentNew= null;
  m_stringIn = in_word; //Это не приводит к созданию копии строки
  //Осуществляем поиск символов подчеркивания ("_") в строке
  m_index_1st_undscore = in_word.IndexOf("_",0);
  //B случае отсутствия символов "_" все, что нам нужно, это первый сегмент
  if (m_index_1st_undscore == -1) {
   return;
  }
  //Найти второй символ " "
  m_index 2nd_undscore = in_word.IndexOf(" ", m_index_1st_undscore + 1);
 }
 public int CompareMiddleSegment(string compareTo) {
  //B случае отсутствия второго символа "_" отсутствует и средний сегмент
  if (m_index_2nd_undscore < 0) {
   //Если мы сравниваем с пустой строкой,
   //то это означает совпадение
   if((compareTo == null) || (compareTo == "")) {return 0;}
   return -1;
  }
  //Сравнить средний сегмент с первым и вторым сегментами
  return System.String.Compare(
   m_stringIn, m_index_1st_undscore + 1, compareTo, 0, m_index_2nd_undscore - m_index_1st_undscore -1);
 }
 public string getWholeString() {
  //Если полученный средний сегмент не является новым,
  //возвратить исходный сегмент
  if (m_middleSegmentNew == null) {
   return m_stringIn;
  }
  //Создать возвращаемую строку
  return m_stringIn.Substring(0, m_index_1st_undscore + 1) +
   m_middleSegmentNew +
   m_stringIn.Substring(m_index_2nd_undscore, m_stringIn.Length - m_index_2nd_undscore);
 }
}

Оглавление книги


Генерация: 1.420. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз