Enumeration – перечислимый тип — КиберПедия 

Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Enumeration – перечислимый тип

2021-04-18 63
Enumeration – перечислимый тип 0.00 из 5.00 0 оценок
Заказать работу

Возможно, концепция перечислимых типов Вам уже знакома. Поэтому, ограничимся классическим, в этом случае, примером. Допустим, программа должна определять количество отработанных часов по правилу: понедельник, вторник, среда, четверг – 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.