Похожие презентации:
Программное обеспечение электронных средств
1.
1ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ЭЛЕКТРОННЫХ СРЕДСТВ
1-39 02 02 «Проектирование и производство
программно-управляемых электронных
средств»
Тонконогов Б.А.
к.т.н.
доцент
2.
2ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
ЭЛЕКТРОННЫХ СРЕДСТВ
Тел.: (+375 29) 6300762
E-mail: [email protected]
Тонконогов Б.А.
к.т.н.
доцент
3.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 3ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МАССИВЫ
Массив – это набор элементов данных, для доступа к которым используется
числовой индекс
Более конкретно, любой массив, по сути, представляет собой набор
расположенных рядом элементов данных одного и того же типа (массив int,
массив string, массив SportCar и тому подобное)
Объявление, заполнение и доступ к массиву в C# довольно прямолинейны
4.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 4ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МАССИВЫ
В целях иллюстрации можно создать новый проект консольного приложения
(по имени FunWithArrays), который содержит вспомогательный метод под
названием SimpleArrays(), вызываемый из Main()
5.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 5ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МАССИВЫ
В дополнение к одномерным массивам в языке C# также поддерживаются
две разновидности многомерных массивов:
• прямоугольный массив, который просто содержит несколько измерений и
все его строки имеют одинаковую длину
• зубчатый (ступенчатый) массив, содержащий некоторое количество
внутренних массивов, каждый из которых может иметь отличающийся
верхний предел
6.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 6ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕЧИСЛЕНИЯ
Перечисления – это удобная программная конструкция, которая позволяет
группировать пары «имя-значение»
Например, предположим, что требуется создать игровое приложение, в
котором игроку бы позволялось выбирать персонажа одной из трех
категорий: Wizard (маг), Fighter (воин) или Thief (вор). Вместо того, чтобы
использовать и отслеживать числовые значения для каждого варианта,
гораздо удобнее создать строго типизированное перечисление с помощью
ключевого слова enum
7.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 7ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ПЕРЕЧИСЛЕНИЯ
По умолчанию для хранения каждого элемента выделяется блок памяти,
соответствующий 32-битному целому, однако при необходимости (например,
при программировании для устройств с малым объемом памяти, таким как
мобильные устройства) это можно изменить
Кроме того, спецификация CTS требует, чтобы перечислимые типы
порождались от общего базового класса System.Enum. Этот базовый класс
определяет несколько специфических членов, которые позволяют извлекать,
манипулировать и преобразовывать лежащие в основе пары «имя-значение»
программным образом
8.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 8ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
СТРУКТУРЫ
Концепция структуры также формализована в рамках CTS. Тем, кто имел дело с
языком С, будет приятно узнать, что определяемые пользователем типы (userdefined type – UDT) сохранились в мире .NET (хотя их поведение несколько
изменилось)
Выражаясь просто, структуру можно считать облегченным типом класса,
имеющим семантику на основе значений
Обычно структуры лучше всего подходят для моделирования геометрических и
математических данных и создаются в C# с применением ключевого слова struct,
как показано в следующем примере
9.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ 9ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ДЕЛЕГАТЫ
Делегаты являются .NET-эквивалентом безопасных к типам указателей на
функции в стиле С
Главное отличие заключается в том, что делегат .NET представляет собой
класс, порожденный от System.MulticastDelegate, а не просто указатель на
низкоуровневый адрес в памяти. В C# делегаты объявляются с помощью
ключевого слова delegate
Делегаты критически важны, когда требуется обеспечить объект
возможностью перенаправления вызова другому объекту, и они формируют
основу архитектуры событий .NET. Делегаты обладают внутренней
поддержкой группового вызова (то есть перенаправления запроса множеству
получателей) и асинхронного вызова методов (то есть вызова методов во
вторичном потоке)
10.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ИИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Вопросы
1.
Массивы
2.
Перечисления
3.
Структуры
4.
Делегаты
10
11.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ИИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Самостоятельная работа
1.
Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э.
Троелсен. – 6-е изд.: Пер. с англ. – М.: ООО «И. Д. Вильямс», 2013. – 1312 с.:
ил. – Парал. тит. англ. (Главы 4, 5 и 10)
11
12.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ12ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
СОБЫТИЯ
В качестве сокращения, избавляющего от необходимости строить
специальные методы для добавления и удаления методов из списка вызовов
делегата, в C# предусмотрено ключевое слово event
Обработка компилятором ключевого слова event приводит к
автоматическому получению методов регистрации и отмены регистрации
наряду со всеми необходимыми переменными-членами для типов делегатов.
Эти переменные-члены всегда объявляются закрытыми и, следовательно, они
не доступны напрямую из объекта, инициировавшего событие
Таким образом, ключевое слово event может применяться для упрощения
отправки уведомлений из специального класса внешним объектам
13.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ13ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
СОБЫТИЯ
Определение события представляет собой двухэтапный процесс:
1.
Во-первых, нужно определить делегат, который будет хранить список
методов, подлежащих вызову при возникновении события
2.
Во-вторых, необходимо объявить событие (используя ключевое слово
event) в терминах связанного типа делегата
14.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ14ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
СОБЫТИЯ
Чтобы проиллюстрировать использование ключевого слова event, создадим
новое консольное приложение по имени CarEvents
В классе Car будут определены два события под названиями AboutToBlow и
Exploded. Эти события ассоциированы с единственным типом делегата по
имени CarEngineHandler. Ниже показаны начальные изменения в классе Car
15.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ15ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЛЯМБДА-ВЫРАЖЕНИЯ
Можно вручную определить отдельный метод для вызова объектом делегата. Для
решения этой проблемы можно ассоциировать событие непосредственно с
блоком операторов кода во время регистрации события. Формально такой код
называется анонимным методом
Анонимные методы интересны тем, что могут обращаться к локальным
переменным метода, в котором они определены. Формально такие переменные
называются внешними переменными анонимного метода. Ниже отмечены
некоторые важные моменты, касающиеся взаимодействия между контекстом
анонимного метода и контекстом определяющего их метода. Анонимный метод:
1)
не имеет доступа к параметрам ref и out определяющего их метода
2)
не может иметь локальные переменные, имена которых совпадают с
именами локальных переменных объемлющего метода
3)
может обращаться к переменным экземпляра (или статическим переменным)
из контекста объемлющего класса
4)
может объявлять локальные переменные с теми же именами, что и у членов
объемлющего класса (локальные переменные имеют отдельный контекст и
скрывают внешние переменные-члены)
16.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ16ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЛЯМБДА-ВЫРАЖЕНИЯ
C# поддерживает способность обрабатывать события «встроенным образом»,
назначая блок операторов кода непосредственно событию с использованием
анонимных методов вместо построения отдельного метода, подлежащего
вызову делегатом
Лямбда-выражения – это всего лишь лаконичный способ записи анонимных
методов, который в конечном итоге упрощает работу с типами делегатов
.NET
Чтобы подготовить фундамент для изучения лямбда-выражений, создадим
новое консольное приложение по имени SimpleLambdaExpressions. Теперь
займемся методом FindAll() обобщенного типа List<T>. Этот метод может
быть вызван, когда нужно извлечь подмножество элементов из коллекции, и
он имеет следующий прототип
17.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ17ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЛЯМБДА-ВЫРАЖЕНИЯ
Для дальнейшего упрощения вызова FindAll() можно применять лямбдавыражения. Используя этот новый синтаксис, вообще не приходится иметь
дело с лежащим в основе объектом делегата. Рассмотрим следующий новый
метод в классе Program
18.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ18ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
ЛЯМБДА-ВЫРАЖЕНИЯ
В частности, следующий оператор кода
компилируется в примерно такой код С#
Общая роль лямбда-выражений состоит в том, что они обеспечивают
«функциональную манеру» работы с анонимными методами и типами
делегатов. Любые лямбда-выражения сводятся к следующему простому
уравнению
19.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ19ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Как и метод Main(), специальные методы могут принимать или не принимать
параметры, а также возвращать или не возвращать значения вызывающему
коду
Методы могут быть реализованы внутри контекста классов или структур (а
также прототипированы внутри интерфейсных типов) и декорироваться
различными ключевыми словами (например, static, virtual, public и new) для
уточнения их поведения
Статические методы могут вызываться напрямую без создания экземпляра
класса
20.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ20ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Существуют несколько ключевых слов (модификаторов параметров), с
помощью которых можно управлять способом передачи аргументов
интересующему методу:
• если параметр не помечен модификатором, предполагается, что он должен
передаваться по значению, то есть вызываемый метод получает копию
исходных данных
21.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ21ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
• out – значения выходных параметров должны присваиваться вызываемым
методом и, следовательно, они передаются по ссылке. Если выходным
параметрам в вызываемом методе значения не присвоены, компилятор
сообщит об ошибке
22.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ22ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
• ref – значение первоначально присваивается вызывающим кодом и при
желании может быть изменено в вызываемом методе (поскольку данные
также передаются по ссылке). Если параметру ref в вызываемом методе
значение не присвоено, никакой ошибки компилятор не генерирует
23.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ23ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
• params – этот модификатор позволяет передавать переменное количество
аргументов как единый логический параметр. Метод может иметь только
один модификатор params, которым должен быть помечен последний
параметр метода. В реальности необходимость в использовании
модификатора params возникает не особо часто, однако он применяется во
многих методах внутри библиотек базовых классов
24.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ24ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Вдобавок к возможности инкапсуляции полей данных с использованием
традиционной пары методов get / set, в языках .NET имеется более
предпочтительный способ инкапсуляции данных с помощью свойств
Прежде всего, следует иметь в виду, что свойства – это всего лишь
упрощенное представление «реальных» методов доступа и изменения
Это значит, что разработчик класса по-прежнему может реализовать любую
внутреннюю логику, которую нужно выполнить перед присваиванием
значения (например, преобразовать в верхний регистр, очистить от
недопустимых символов, проверить границы числовых значений и так далее)
25.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ25ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Измененный класс Employee, который обеспечивает инкапсуляцию каждого
поля с применением синтаксиса свойств вместо традиционных методов
get / set
26.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ26ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Свойство C# состоит из определений контекстов get (метод доступа) и set
(метод изменения), вложенных непосредственно в контекст самого свойства.
Следует обратить внимание, что свойство указывает тип данных, которые оно
инкапсулирует, как тип возвращаемого значения. Кроме того, в отличие от
метода, в определении свойства не используются скобки (даже пустые)
В контексте set свойства используется лексема value, которая представляет
входное значение, присваиваемое свойству вызывающим кодом. Эта лексема
не является настоящим ключевым словом С#, а представляет собой то, что
называется контекстным ключевым словом. Когда лексема value находится
внутри контекста set, она всегда обозначает значение, присваиваемое
вызывающим кодом, и всегда имеет тип, совпадающий с типом самого
свойства
27.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ27ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Свойства (в противоположность методам доступа и изменения) также
облегчают манипулирование типами, поскольку способны реагировать на
внутренние операции С#. При инкапсуляции данных может понадобиться
сконфигурировать свойство, доступное только для чтения. Для этого нужно
просто опустить блок set. Аналогично, если требуется создать свойство,
доступное только для записи, следует опустить блок get
Таким образом, для инкапсуляции данных в C# предпочтение отдается
свойствам. Эти синтаксические сущности служат для той же цели, что и
традиционные методы для доступа (get) и изменения (set). Преимущество
свойств в том, что пользователи объектов имеют возможность
манипулировать внутренним элементом данных с помощью единственной
именованной конструкции
28.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ28ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
МЕТОДЫ И СВОЙСТВА
Чтобы упростить процесс простой инкапсуляции данных полей, можно
применять синтаксис автоматических свойств. Как следует из названия, это
средство перекладывает работу по определению закрытого
поддерживающего поля и связанного свойства C# на компилятор, используя
небольшое усовершенствование синтаксиса. Например, в консольном
приложении размещен класс Car, в котором этот синтаксис применяется для
быстрого создания трех свойств
29.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ29ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
УНИВЕРСАЛЬНЫЕ ШАБЛОНЫ
Универсальные шаблоны были добавлены в язык C# и общеязыковую среду
выполнения (CLR) в версии 2.0
Универсальные шаблоны вводят на платформе .NET Framework концепцию
параметров универсального типа
Благодаря им можно создавать классы и методы с типами, спецификация
которых отложена до момента объявления и создания экземпляров в
клиентском коде
30.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ30ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
УНИВЕРСАЛЬНЫЕ ШАБЛОНЫ
Класс с параметром T универсального типа. Этот класс может использоваться
в другом клиентском коде, не требуя ресурсов и не создавая рисков,
связанных с операциями приведения и упаковки-преобразования в среде
выполнения
31.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ И ИСПОЛЬЗОВАНИЕ31ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНО-ОРИЕНТИРОВАННОГО
ПРОГРАММИРОВАНИЯ
УНИВЕРСАЛЬНЫЕ ШАБЛОНЫ
С использованием универсальных шаблонов возможно:
• получение максимально широких возможностей многократного
использования кода, обеспечение безопасности типов и повышение
производительности
• создание классов коллекций (библиотека классов .NET Framework
содержит несколько новых универсальных классов коллекций в
пространстве имен System.Collections.Generic. Рекомендуется как можно
чаще использовать их вместо таких классов, как ArrayList в пространстве
имен System.Collections)
• создание собственных универсальных интерфейсов, классов, методов,
событий и делегатов
• ограничение универсальных классов, чтобы они разрешали доступ к
методам только для определенных типов данных
• получение сведений о типах, используемых в универсальном типе данных,
во время выполнения с помощью отражения (рефлексии)
32.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ИИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Вопросы
1.
События
2.
Лямбда-выражения
3.
Методы и свойства
4.
Универсальные шаблоны
32
33.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ИИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Задание
Освоение основ объектно-ориентированного программирования и
функциональности и графического пользовательского интерфейса
интегрированной среды разработки
Используя интегрированную среду разработки Microsoft Visual Studio:
1.
Создать проект типа Console Application
2.
Реализовать примеры инициализации и доступа к одномерному,
прямоугольному и зубчатому массивам
3.
Продемонстрировать примеры реализации:
• перечисления
• события
• метода класса
• свойства класса
33
34.
1. ВИДЫ, ХАРАКТЕРИСТИКИ И НАЗНАЧЕНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ЭЛЕКТРОННЫХ СРЕДСТВ ИИСПОЛЬЗОВАНИЕ ИНТЕГРИРОВАННЫХ СРЕД РАЗРАБОТКИ ДЛЯ ЕГО ПРОГРАММНОЙ РЕАЛИЗАЦИИ
1.6. ИНТЕГРИРОВАННЫЕ СРЕДЫ РАЗРАБОТКИ, РЕАЛИЗУЮЩИЕ КОНЦЕПЦИИ И МЕТОДОЛОГИИ ОБЪЕКТНО- И ПРЕДМЕТНООРИЕНТИРОВАННОГО ПРОГРАММИРОВАНИЯ
Самостоятельная работа
1.
Троелсен, Э. Язык программирования С# 5.0 и платформа .NET 4.5 / Э.
Троелсен. – 6-е изд.: Пер. с англ. – М.: ООО «И. Д. Вильямс», 2013. – 1312 с.:
ил. – Парал. тит. англ. (Главы 3 - 6)
34