Добавил:
2200 7008 9480 6099 TKFF БЛАГОДАРНОСТЬ МОЖНО ТУТ ОСТАВИТЬ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ДИПЛОМ 2025 / 4 курса_МТУСИ / 1 КУРС / Информатика / С# для чайников - Мюллер.pdf
Скачиваний:
0
Добавлен:
04.06.2025
Размер:
53.3 Mб
Скачать

облегчает чтение вашего кода. Приведенный далее код показывает, как может работать флаг-перечисление:

цц

 

.

уюрrрх гl уюрuрх e уюрrхр

кl 1,, r уюрuрх кlCх,,л r уюрrрх кl, хтs,W

цц

к

х ч W

уюримr, р. eх:

,т:им, нг уюрr

уюрим р,r. eхE

,пEимнй,

р лый р н =им sг уюрrрх чV

Этот код начинается с создания переменной myColors, которая содержит три выбора - Colors4 . Red, Colors4 . Green и Colors4 . Purple. Чтобы создать аддитивный список выбора, значения комбинируются с использованием опера­ тора 1 . Обычно myColors будет содержать значение 4 1. Однако следующие две строки кода показывают влияние атрибута [Flags ] :

1,,H V лCх,,имр , хтr,

Вывод показывает отдельные параметры при выводе myColors. Поскольку myColors представляет значения флагов, в примере также выводится значе­ ние myColors, равное 4 1, в виде шестнадцатеричного значения Ох2 9. Добав­ ление форматной строки Х2 к аргументу формата приводит к выводу значе­ ния в шестнадцатеричном, а не десятичном виде, причем с двумя значащими цифрами. Аргумент формата и форматная строка разделяются двоеточием ( : ) . Больше о типах форматов (включая форматные строки) вы можете уз­ нать по адресу https : / /docs . microsoft . com/dotnet/standard/base-types/ formatting-types.

Применение перечислений в конструкции switch

При работе с конструкцией swi tch причина принятия того или иного реше­ ния может оставаться неясной, если использовать числовое значение. Напри­ мер, следующий код на самом деле мало что говорит вам о процессе принятия решений:

цц

6,u,

)

:рим> л Г

E3 .

)

:им г

 

 

E3)

нг

6,r, ( Eримч

 

 

,

4

 

,ктEимнйго,

тщ

. й чV

 

уюримr, ртeх:

 

'х,щ mi

 

 

 

(щ , ( l

рr,.eх:

,кт:им,n тго

тщ

iо st

 

уюрл

безn

,з)3ф,

к, Основы программирования на С#

ГЛАВА 1 О Списки элементов с использованием перечислений 255

Обь ,:н о-

···· , и ро ва н ­ о гра м м и ­

на С#

ВЭ Т О Й Ч АСТ И • . .

>>Глава 1 1 , "Что такое объектно-ориентирован ное программирование"

»Глава 1 2, "Немного о классах"

»Глава 1 3, "Методы"

»Глава 1 4, "Поговорим об этом"

»Глава 1 5, "Класс: каждый сам за себя"

»Глава 1 6, "Наследование"

»Глава 1 7, "Полиморфизм"

»Глава 1 8, "Интерфейсы"

»Глава 1 9, "Делегирование событий "

»Глава 20, "Пространства имен и библиотеки"

»Глава 2 1 , "Именованн ые и необязательные параметры"

»Глава 22, "Структуры"

Что та ко е о бъ е кт н о ­

ор и е н т и р о в а н н о е

мм и р о в а н и ерр

В ЭТОЙ ГЛАВЕ•..

»• Осньвы'ьбi к+н&-dрй'енtированньгь 'программи't:>ованйя

 

ец,

#,

 

 

>,

 

 

 

 

 

 

 

и

к!l'lассификация

 

 

 

)) Абстракция -

 

 

 

 

 

С. .крочх

ь а.

О

 

 

юр Л. я н . е п е. .

м. р,н-

Э.

а. w » .

к Кт .б .

s Р цкт. Р ) .

ымкв.й 2.упбгТрпеЕъ

eя.

 

 

н

О.

 

Г

 

 

·)) ажно ть 96ъектн6-ориенrированного програм ирования

o к )

о)

л с я)

u С ) о)

 

1 А)

 

 

а и е)

б)

н)

 

бъектная ориентированность является неотъемлемой частью современ­

 

ного программирования, поскольку помогает моделировать реальный

ес

 

 

 

 

 

 

 

 

 

 

мир с помощью кода,

являющегося способом решения сложных задач

программирования кодирования лучшим, чем применение методов процедур­ ного программирования. В этой главе дается ответ на два основных вопроса: "Каковы концепции, лежащие в основе объектно-ориентированного програм­ мирования, и как они отличаются от процедурных концепций, описанных в части 1, "Основы программирования на С#", этой книги?" Мы начнем с рас­ смотрения абстракции, которую объектно-ориентированный подход предлага­ ет для воспроизведения модели реального мира в коде. Далее в главе рассмат­ риваются вопрос классификации и применение объектно-ориентированного подхода для более быстрого и простого (по сравнению с процедурными техно­ логиями) создания приложений.

Объектно-ориентированная концеnц'1_Я № 1 : абстеакция

Вы садитесь в машину, намереваясь куда-то ехать. Вы запускаете двигатель,

включаете передачу, а затем нажимаете акселератор, чтобы начать движение. Тормоз позволяет временно останавливать автомобиль, чтобы не сбивать пе­ шеходов и не нарушать правила дорожного движения. Прибыв в пункт назна­

чения, вы глушите мотор. Во всем этом сценарии есть вещи, которые вы ти

делаете:

)) Вы не открываете моторный отсек, чтобы вручную регулировать по­ ток топлива и воздуха и контролировать скорость двигателя.

)) Вы не изменяете способ управления автомобилем таким образом, чтобы нажатие на акселератор останавливало автомобиль, а нажа­ тие на тормоз заставляло его двигаться вперед.

)) Вы не создаете совершенно новую систему сигналов о ваших наме- рениях другим водителям.

 

Это не просто пространные рассуждения. В повседневной жизни нас

 

постоянно преследуют стрессы. Чтобы уменьшить их число, мы на­

 

чинаем обращать внимание только на события определенного уров­

ЗАПОМНИ!

ня детализации. В объектно-ориентированном программировании

 

 

 

 

уровень детализации, на котором вы работаете, называется ­4

л,тиР

 

)­)e4

)r.22 гИ объяснить этот термин можно на примере )­)e4)

2o

 

4л,)!=

от подробностей внутреннего устройства автомобиля.

 

К счастью, ученые-кибернетики - и тысячи фанатов программирования - открыли объектную ориентированность и ряд других концепций, снижающих уровень сложности, с которым должен работать программист. Использование абстракций делает программирование более простым и уменьшает количество возможных ошибок . Именно в этом направлении как минимум полстолетия движется прогресс в программировании - работа со все более сложными кон­

цепциями со все меньшим количеством ошибок . Ведя машину, вы рассматриваете ее как черный ящик. (По дороге на рынок или в театр вы не можете позволить себе беспокоиться о внутренностях авто­

мобиля и одновременно избегать столкновений с этими надоедливыми пеше­

ю его интерфе

й

са

ходами.) Пока вы пользуетесь автомобилем только с помощь

 

(различных элементов управления), что бы вы ни делали, это не приведет к

тому, что автомобиль войдет в противоречивое состояние и взорвется.

 

 

260 ЧАСТЬ 2 Объектно-ориентированное программирование на С#

Соседние файлы в папке Информатика