Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Комплексной системы оценки состояния охраны труда на производственном объекте (КСОТ-П): Цели и задачи Комплексной системы оценки состояния охраны труда и определению факторов рисков по охране труда...
Установка замедленного коксования: Чем выше температура и ниже давление, тем место разрыва углеродной цепи всё больше смещается к её концу и значительно возрастает...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Национальное богатство страны и его составляющие: для оценки элементов национального богатства используются...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2021-04-18 | 63 |
5.00
из
|
Заказать работу |
|
|
Возможно, концепция перечислимых типов Вам уже знакома. Поэтому, ограничимся классическим, в этом случае, примером. Допустим, программа должна определять количество отработанных часов по правилу: понедельник, вторник, среда, четверг – 8 часов, пятница – 7, суббота и воскресенье – 0.
Для представления дня недели опишем перечислимый тип
enum WeekDay = {San, Mon, Tue, Wed, Thu, Fri, Sat};
Теперь функция, определяющая количество отработанных часов может выглядеть следующим образом:
static int WorkOurs (WeekDay wd)
{
switch(wd)
{
case WeekDay.San: case WeekDay.Sat: return 0;
case WeekDay.Mon: case WeekDay.Tue:
case WeekDay.Wed: case WeekDay.Thu: return 8;
case WeekDay.Fri: return 7;
}
}
В последнем примере использования метода Split второй параметр является параметром стандартного перечислимого типа StringSplitOptions, определенного в.NET, а RemoveEmptyEntries – одним из значений этого типа.
Метод IndexOf()
Этот метод возвращает позицию первого вхождения строки, в строке, вызывающей этот метод. Если подстроки в строке нет, метод возвращает -1.
String s=”Hello, Helen!”;
Console.WriteLine(s.IndexOf(“He”); //выводит 0
Console.WriteLine(s.IndexOf(“he”); //выводит -1
Чтобы найти последующие (после первого) вхождения, можно применить перегруженную версию IndexOf, второй параметр которого указывает позицию, с которой нужно начинать поиск строки в подстроке. С помощью этого метода следующий фрагмент выводит все вхождения подстроки.
int k=0;
while (k!=-1)
{
k= s.IndexOf(“He”,k);
Console.WriteLine(k); //выводит 0
k++;
}
Метод Format
Синтаксис и действие этого метода похожи на метод Console.WriteLine. Отличие в том, что WriteLine выводит сформированную строку на экран, а Format возвращает эту строку для дальнейшего использования в программе.
Метод Format является статическим и вызывается от имени класса:
String s=String.Format(“{0}x{1}={2} и {2}={1}x{0}”,2,3,2*3);
|
В результате сформирована строка “2x3=6 и 6=3*2”
Метод ToCharArray
Набор методов класса String не может быть идеальным средством для решения всех задач обработки текстов. Существует немало даже простых задач, которые «неудобно» решать этими методами. В этом случае остается последнее средство – решать задачу, рассматривая строку как массив символов. Однако, как уже было сказано ранее, индексированный доступ к символам строки возможен только для чтения. Именно в этом случае Вам понадобится метод ToCharArray, который «разбирает» целостный объект-строку на массив символов. В следующем примере решается простая задача инвертирования символов строки:
String s=”телефон”;
char ch;
char chAr=s.ToCharArray();
for(int i=0; i<char.Length/2; i++)
{ ch=chAr[i]; char[i]=chAr[char.Length-i-1]; chAr[char.Length-i-1]=ch; }
s=new String(char);
Пример демонстрирует, что метод ToCharArray возвращает массив символов. Последняя строка показывает, как можно создать объект-строку из массива символов.
Объектно-ориентированное программирование
Эволюция от структур к классам
Используем структуры
Напомним, как использовать традиционные уже в языке Си структурные типы и их переменные – структуры.
01 struct Person
02 { public string Name;
03 public double Height;
04 public double Weight;
05 }
06 class Program
07 { static void Main(string[] args)
08 { Person me, you;
09 me.Name="Это я"; me.Height=190.0; me.Weight=85;
10 you.Name="Это ты"; you.Height=140.0; you.Weight=85;
11 PersonAnalyze(me.Height,me.Weight,me.Name);
12 PersonAnalyze(you.Height,you.Weight,you.Name);
13 }
14 static void PersonAnalyze(double h,double w,string n)
15 { if (h - w > 100.0) Console.WriteLine(n + " худой");
16 else Console.WriteLine(n + " полный");
17 }
18 }
В определении структурного типа Person (стр.01-05) новым является только использование слова public в описании переменных. Его роль мы выясним позже.
Класс Program условно можно назвать главным классом, поскольку он содержит метод Main, с которого и начнется выполнение программы.
В методе Main описываются две структуры (переменные структурного типа). В отличие от языка Си, в описании структур ключевое слово struct не указывается. Таким образом, переменные me и you являются переменными типа Person.
|
Далее с помощью операции доступа к полю (операции точка) и операторов присваивания происходит заполнение переменных me и you информационным содержимым (стр.09-10).
Наконец, в стр. 11 и 12 вызывается метод PersonAnalyze класса Program сначала с данными структуры me, а затем с данными структуры you. Заметим, что метод PersonAnalyze, как и метод Main описан как static. На экране должен появиться следующий результат:
Это я полный
Это ты худой
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Своеобразие русской архитектуры: Основной материал – дерево – быстрота постройки, но недолговечность и необходимость деления...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!