- •Введение
- •Основные сведения по языку c#
- •Общие сведения о .Net Framework
- •C# и платформа .Net Framework
- •Средства разработки для .Net Framework
- •СредаClr
- •Понятие сборки (assembly)
- •Jit-компиляция
- •Просмотр метаданных
- •Сборка мусора
- •Обзор иср
- •Иср Visual c# Express
- •Стартовая страница
- •Консольное приложение
- •Приложения Windows
- •ИсрVisual Studio .Net
- •ИсрSharpDevelop
- •Основы языка c#
- •Алфавит
- •Комментарии
- •Идентификаторы
- •Ключевые слова
- •Переменные и константы
- •Структура программы на c#
- •Пространства имен
- •Main() и аргументы командной строки
- •Операторы
- •Основные операторы
- •Унарные операторы
- •Аддитивные операторы
- •Мультипликативные операторы
- •Операторы сдвига
- •Операторы отношений
- •Операторы присваивания
- •Арифметическое переполнение
- •Математические операции
- •Литералы
- •Описание
- •Структуры
- •Инкапсуляция
- •Наследование
- •Полиморфиэм
- •Конструкторы
- •Деструкторы
- •Интерфейсы
- •Делегаты
- •Типы значений
- •Ссылочные типы
- •Тип dynamic
- •Тип object
- •Тип string
- •Встроенные базовые типы
- •Типы чисел
- •Типы целых чисел
- •Типы чисел с плавающей запятой
- •Значения типов по умолчанию
- •Преобразования типов
- •Стандартное форматирование чисел
- •Нестандартное форматирование чисел
- •Тип char - символы
- •Тип enum - перечисление
- •Тип DateTime
- •Свойства
- •Задание типов в объявлениях переменных
- •Инструкции, введение
- •Выражения
- •Разделители
- •Решения и ветвления
- •Безусловный переход вызовом функций
- •Ветвление if; else
- •Вложенные ветвления if; else
- •Выбор switch; case
- •Команда goto и метки
- •Цикл for
- •Цикл while
- •Цикл do- while
- •Безусловные переходы
- •Вечные циклы
- •Команда foreach
- •Обработкаошибок и исключений
- •Try, Catch
- •Try, Catch, Finally
- •Работа со строками
- •Представление строк
- •Метод ToString()
- •Доступ к отдельным знакам
- •Массивы и коллекции
- •Коллекции
- •Массивы
- •Использование инструкции foreach, in
- •Графика
- •Объект Graphics
- •Перо (Pen)
- •Кисть (Brush)
- •Шрифты и текст
- •Методы рисования
- •Методы заливки
- •Рисование графика функции
- •Растровая графика
- •Примитивные компоненты
- •Подробнее оCil
- •Ассемблер cil
- •Архитектура виртуальной машиныCil
- •Память для метода
- •Система типовCts
- •Типы в базовых классах .Net, c# и cil
- •Пользовательские типы данных
- •Упакованные типы-значения
- •Виртуальная система выполнения
- •Стек вычислений
- •Автоматическое управление памятью
- •Лексемы в cil
- •Директивы cil
- •Атрибуты cil
- •Коды операций в cil
- •Команды загрузки
- •Команды выгрузки
- •Вычислительные команды
- •Арифметические инструкции
- •Переходы и вызовы в il
- •Трансляция вCil
Консольное приложение
Для иллюстрации создаем проект консольного приложения «ConsoleHello», который будет входить в решение «ConsoleHello».
Консольные приложения предназначены для работы с командной строкой, в которой используется символьный интерфейс.
При запуске ИСР отображается стартовая страница. В ней нужно исполнить команду «Файл => Создать проект». Отображается окно выбора типа проекта. В нем нужно выбрать «Консольное приложение» и задать имя проекта –ConsoleHello.
Проект создается, отображаются его компоненты.
В режиме создания проекта меню ИСР меняется. Теперь оно содержит пункты:
Файл |
|
Правка |
|
Вид |
|
Проект |
|
Построение |
|
Отладка |
|
Данные |
|
Сервис |
|
Окно |
|
Справка |
|
Новый пункты «Проект» содержит команды:
Добавить форму Windows… |
Из предъявляемого списка |
Добавить пользовательский элемент управления… |
Из предъявляемого списка |
Добавить класс… |
Из предъявляемого списка |
Добавить новый элемент… |
Из предъявляемого списка |
Существующий элемент… |
Из ресурсов проекта |
Создать папку |
Новую |
Показать все файлы |
Проекта |
Добавить ссылку… |
Из предъявляемого списка |
Добавить ссылку на службу… |
Из предъявляемого списка |
Назначить запускаемым проектом |
Из множества проектов в решении |
Обновить элементы проекта в панели элементов |
|
Свойства ConsoleHello |
|
Новый пункт «Построение» содержит команды:
Построить решение |
Компиляция |
Перестроить решение |
Компиляция с оптимизацией |
Опубликовать ConsoleHello |
Вызывается мастер создания папки с исполняемым файлом в другом месте. |
Пункт «Отладка» теперь содержит команды:
Окна ► |
Выбор окон вывода: Вывод, Интерпретация |
Начать отладку |
|
Запуск без отладки |
|
Исключение |
|
Шаг с заходом |
С заходом в подпрограммы |
Шаг с обходом |
Подпрограмма за шаг |
Точка останова |
|
Очистить все подсказки по данным |
|
Экспорт подсказок по данным |
|
Экспорт подсказок по данным |
|
Точка останова |
|
Новый пункт «Данные» содержит команды:
Показать источники данных… |
Из предъявляемого списка |
Добавить новый источник данных… |
|
Теперь сохраняем все командой Файл => Сохранить все. По умолчанию создается решение с именем главного проекта. В папке решения размещаются:
Вложенная папка проекта.
Файл ConsoleHello.sln. Текстовое описание решения.
Файл ConsoleHello.suo. Генератор решения.
Решение создается в структуре папок. В папке Решение “ConsoleHello”размещается папка проектаConsoleHello, которая включает:
Папку Properties, свойства проекта. Файл AssemblyInfo.cs содержит общие сведения о сборке.
Папка Ссылки содержит ссылки на используемые в сборке пространства имен.
Папка bin содержит финальные бинарные файлы.
Папка obj содержит промежуточные файлы, из которых при компоновке получаются бинарные файлы. Консольное приложение делается под процессор с форматом x86. Поэтому имеется вложенная папка x86. Если объектный файл один, то он будет совпадать с бинарным. Папка TempoPE служит для хранения временных PE файлов.
Program.cs – исходник на C#.
В каждой из папок bin и obj есть вложенные папки DebugиRelease.При разработке приложения используются два режима:
Построить решение. При компиляции в файл включается отладочная информация, оптимизация компилятора отключается. Это может увеличить размеры файлов. Формируемые файлы помешаются в папки Debug.
Перестроить решение. Создание финального продукта. При компиляции в файл не включается отладочная информация, оптимизация компилятора включается. Это может уменьшить размеры файлов. Формируемые файлы помешаются в папки Release.
При сохранении проекта создаются файлы:
Program.cs |
Программа на C# |
ConsoleHello.exe |
Исполняемый PE файл |
ConsoleHello.pdb |
База данных, описывающая его |
ConsoleHello.vshost.exe |
Вызов компилятора |
ConsoleHello.vshost.exe.manifest |
Манифест компилятора |
ConsoleHello.csproj.FileListAbsolute.txt |
Список файлов |
DesignTimeResolveAssemblyReferencesInput.cache |
Кэш проекта |
Если выпускаемое приложение будет использоваться без поддержки платформы .Net, то нужно сформировать исполняемый файл дляWin32, используя процедуру опубликования. Она использует встроенного мастера, который проводит вас через эту процедуру. В специальную папку published загружаются манифест файла IL с его описанием иsetup.exe- инсталлятор Windows. При запуске инсталлятора в этой папке по манифесту формируется исполняемый файл под ОС компьютера развертывания приложения. Соотношение его размеров с размерами файла IL зависит от ОС и аппаратных средств.