- •Введение в c# и платформу .Net Философия .Net
- •Введение в строительные блоки платформы .Net (clr, cts и cls)
- •Роль библиотек базовых классов
- •Понятие общей системы типов (cts)
- •Понятие общеязыковой спецификации (cls)
- •Понятие общеязыковой исполняющей среды (clr)
- •Различия между сборками, пространствами имен и типами
- •Лабораторная работа №1. Создание приложений на языке c# без использования ide Роль .Net Framework 4.5 sdk
- •Построение приложений c# с использованием csc.Ехе
- •Указание целевых входных и выходных параметров
- •Ссылка на внешние сборки
- •Компиляция нескольких файлов исходного кода
- •Лабораторная работа №2. Построение приложений .Net с помощью Visual Studio Создание нового проекта
- •Использование утилиты Solution Explorer
- •Ссылка на внешние сборки
- •Утилита Object Browser
- •Фрагменты кода и технология Surround With
- •Утилита Class Designer
- •Лабораторная работа №3. Основы программирования на c# Структура простой программы c#
- •Класс System.Console
- •Форматирование числовых данных
- •Системные типы данных и соответствующие ключевые слова c#
- •Объявление и инициализация переменных
- •Иерархия классов для типов данных
- •Члены числовых типов данных
- •Члены System.Boolean
- •Члены System.Char
- •Работа со строковыми данными
- •Базовые манипуляции строками
- •Управляющие последовательности
- •Итерационные конструкции c#
- •Лабораторная работа №4. Главные конструкции программирования на с# Методы и модификаторы параметров
- •Стандартное поведение передачи параметров по значению
- •Модификатор out
- •Модификатор ref
- •Модификатор params
- •Определение необязательных параметров
- •Вызов методов с использованием именованных параметров
- •Массивы в c# Объявление и инициализация массивов
- •Определение массива объектов
- •Базовый класс System.Array
- •Управление хранилищем, лежащим в основе перечисления
- •Объявление переменных типа перечисления
- •Динамическое извлечение пар “имя/значение” перечисления
- •Типы структур
- •Объектно- ориентированное программирование на c# Лабораторная работа №5. Работа с классами Знакомство с типом класса c#
- •Размещение объектов с помощью ключевого слова new
- •Определение специальных конструкторов
- •Роль ключевого слова this
- •Еще раз о необязательных аргументах
- •Понятие ключевого слова static
- •Определение статических полей данных
- •Определение статических классов
- •Основные принципы объектно-ориентированного программирования
- •Роль инкапсуляции
- •Роль наследования
- •Роль полиморфизма
- •Лабораторная работа №6. Инкапсуляция Модификаторы доступа c#
- •Стандартные модификаторы доступа
- •Первый принцип: службы инкапсуляции c#
- •Инкапсуляция с использованием традиционных методов доступа и изменения
- •Использование свойств внутри определения класса
- •Свойства, доступные только для чтения и только для записи
- •Взаимодействие с автоматическими свойствами
- •Понятие синтаксиса инициализации объектов
- •Работа с данными константных полей
- •Понятие полей, допускающих только чтение
- •Понятие частичных типов
- •Лабораторная работа №7. Наследование Базовый механизм наследования
- •Указание родительского класса для существующего класса
- •Ключевое слово sealed
- •Управление созданием базового класса с помощью ключевого слова base
- •Хранение секретов семейства: ключевое слово protected
- •Добавление запечатанного класса
- •Реализация модели включения/делегации
- •Определения вложенных типов
- •Лабораторная работа №8. Полиморфизм
- •Переопределение виртуальных членов в ide-среде Visual Studio
- •Запечатывание виртуальных членов
- •Абстрактные классы
- •Понятие полиморфного интерфейса
- •Сокрытие членов
- •Правила приведения к базовому и производному классу
- •Ключевое слово as
- •Ключевое слово is
- •Главный родительский класс System.Object
- •Переопределение System.Object.ToString()
- •Переопределение System.Object.Equals()
- •Статические члены System.Object
- •Лабораторная работа №9. Структурированная обработка исключений
- •Роль обработки исключений .Net
- •Строительные блоки обработки исключений в .Net
- •Базовый класс System.Exception
- •Простейший пример
- •Генерация общего исключения
- •Перехват исключений
- •Конфигурирование состояния исключения
- •Исключения уровня приложения (System.ApplicationException)
- •Построение специальных исключений, способ первый
- •Построение специальных исключений, способ второй
- •Обработка нескольких исключений
- •Общие операторы catch
- •Внутренние исключения
- •Какие исключения могут генерировать методы?
- •Результат наличия необработанных исключений
- •Лабораторная работа №10. Работа с интерфейсами Понятие интерфейсных типов
- •Реализация интерфейса
- •Вызов членов интерфейса на уровне объектов
- •Получение ссылок на интерфейсы: ключевое слово as
- •Получение ссылок на интерфейсы: ключевое слово is
- •Использование интерфейсов в качестве параметров
- •Использование интерфейсов в качестве возвращаемых значений
- •Массивы интерфейсных типов
- •Явная реализация интерфейсов
- •Проектирование иерархий интерфейсов
- •Множественное наследование посредством интерфейсных типов
Компиляция нескольких файлов исходного кода
Текущая версия приложения TestApp.exe создавалась с использованием единственного файла исходного кода *.cs. Хотя определять все типы .NET в одном файле*.cs вполне допустимо, большинство проектов состоят из множества файлов *.cs для обеспечения большей гибкости кодовой базы. Предположим, что написан новый класс, содержащийся в отдельном файле по имени HelloMsg.cs:
Изменим
начальный класс TestApp так, чтобы в нем
применялся этот новый класс, и
закомментируем предыдущую логику,
связанную с Windows Forms:
Скомпилировать файлы C# можно путем явного перечисления каждого входного файла:
csc /r:System.Windows.Forms.dll TestApp.cs HelloMsg.cs
В качестве альтернативы компилятор C# позволяет использовать групповой символ (*) для включения в текущую сборку всех файлов *.сs, которые содержатся в каталоге проекта:
csc /r:System.Windows.Forms.dll *.cs
Модифицируйте исходные файлы и скомпилируйте новую сборку. Убедитесь, что рзультат запуска программы не изменился.
Лабораторная работа №2. Построение приложений .Net с помощью Visual Studio Создание нового проекта
Продукт Visual Studio поставляется с конструкторами графических пользовательских интерфейсов, поддержкой фрагментов кода, инструментами манипулирования базами данных, утилитами для просмотра объектов и проектов, а также встроенной справочной системой.
Создайте новое консольное приложение на C# (по имени VsExample), выбрав пункт меню File→New→Project (Файл→Создать→Проект). Как показано на рис. 2.8, Visual Studio поддерживает возможность выбора версии .NET Framework (2.0, 3.0, 3.5, 4.0 или 4.5), для которой должно создаваться приложение, с помощью раскрывающегося списка, отображаемого по центру в верхней части диалогового окна New Project (Новый проект).
Рис. 6. Visual Studio позволяет выбирать целевую версию .NET Framework
Использование утилиты Solution Explorer
Утилита Solution Explorer (Проводник решений), доступная через меню View (Вид), позволяет просматривать набор всех файлов содержимого и ссылочных сборок, которые входят в состав текущего проекта. Также обратите внимание, что заданный файл (например, Program.cs) можно раскрыть, чтобы просмотреть определенные в нем кодовые типы.
Кроме того, внутри папки References (Ссылки) в окне Solution Explorer отображается список всех сборок, на которые имеются ссылки. В зависимости от типа выбираемого проекта и целевой версии .NET Framework, этот список выглядит по-разному. Поскольку мы создали консольное приложение, набор автоматически включаемых библиотек минимален (System.dll, System.Core.dll, System.Data.dll и т.д.).
Изучите содержимое окна Solution Explorer
Рис. 7. Окно утилиты Solution Explorer
Ссылка на внешние сборки
Если необходимо сослаться на дополнительные сборки, щелкните правой кнопкой мыши на папке References и выберите в контекстном меню пункт Add Reference (Добавить ссылку). После этого откроется диалоговое окно Reference Manager (Диспетчер ссылок), позволяющее выбрать желаемые сборки (в Visual Studio это аналог параметра /reference для компилятора командной строки). На вкладке Framework (Платформа) этого окна отображается список наиболее часто используемых сборок .NET; на вкладке Browse (Обзор) предоставляется возможность найти сборки .NET, которые находятся на жестком диске. На вкладке Recent (Недавние) отслеживаются ссылки на сборки, которые менялись в других проектах.
Рис. 8. Диалоговое окно Reference Manager
Найдите сборку System.Windows.Forms.dll в разделе Framework и отметьте связанный с ней флажок.
После этого действия (и закрытия диалогового окна) данная библиотека появится в папке References в окне Solution Explorer. Эту ссылку можно удалить, выбрав ее в окне Solution Explorer и нажав клавишу <Delete> (или с помощью команды Delete (Удалить) контекстного меню, открываемого по щелчку правой кнопкой мыши).
Просмотр свойств проекта И, наконец, обратите внимание на значок Properties (Свойства) в окне Solution Explorer. Двойной щелчок на нем приводит к открытию редактора конфигурации проекта.
Рис. 9. Редактор конфигурации проекта
Утилита Class View Следующим инструментом, с которым необходимо ознакомиться, является утилита Class View (Просмотр классов), доступ к которой также производится через меню View. Эта утилита предназначена для просмотра всех типов в текущем проекте с объектно-ориентированной точки зрения (а не с точки зрения файлов, как в Solution Explorer). В верхней панели утилиты Class View отображается список пространств имен и их типов, а в нижней панели — члены выбранного в текущий момент типа.
Двойной щелчок на типе или члене типа приводит к автоматическому открытию соответствующего файла кода C# и помещению курсора в нужную позицию. Еще одной замечательной особенностью утилиты Class View в Visual Studio является возможность открытия любой ссылочной сборки и просмотра содержащихся внутри нее пространств имен, типов и членов.
Рис. 10 Утилита Class View
