Тверской государственный университет
Опубликован: 22.11.2005 | Доступ: свободный | Студентов: 30312 / 1796 | Оценка: 4.31 / 3.69 | Длительность: 28:26:00
ISBN: 978-5-9556-0050-5
Лекция 17:

Структуры и перечисления

< Лекция 16 || Лекция 17: 1234 || Лекция 18 >

Персоны и профессии

Рассмотрим еще один пример работы с перечислениями, приближенный к реальности. Добавим в класс Person, рассмотренный в предыдущей лекции 16, поле, определяющее профессию персоны. Вполне разумно иметь перечисление, например, Profession, задающее список возможных профессий. Сделаем это поле, как обычно, закрытым, а доступ к нему обеспечим соответствующим свойством:

Profession prof;
public Profession Prof
{
	get {return (prof);}
	set {prof = value;}
}

Добавим еще в класс Person метод Analysis, анализирующий профессию, организуя традиционный разбор случаев и принимая решение на каждой ветви, в данном примере - выводя соответствующий текст:

public void Analysis()
{
	switch (prof)
		{
		case Profession.businessman:
			Console.WriteLine ("профессия: бизнесмен");
			break;
		case Profession.teacher:
			Console.WriteLine ("профессия: учитель");
			break;
		case Profession.engineer:
			Console.WriteLine ("профессия: инженер");
			break;
		default:
			Console.WriteLine ("профессия: неизвестна");
			break;
		}
}

Приведу простой тестирующий пример работы с объектом Person и его профессией:

public void TestProfession()
{
	Person pers1 = new Person ("Петров");
	pers1.Prof = Profession.teacher;
	pers1.Analysis();
}

Результаты работы с объектами перечислений, полученные при вызове тестов TestEnum и TestProfession, показаны на рис. 17.3.

Результаты работы с перечислениями

Рис. 17.3. Результаты работы с перечислениями
< Лекция 16 || Лекция 17: 1234 || Лекция 18 >
Александр Галабудник
Александр Галабудник

Не обнаружил проекты, которые используются в примерах в лекции, также не увидел список задач.

Александра Гусева
Александра Гусева