Знакомство со средой разработки Microsoft Visual Studio.NET. Структура программы на C#. Основы языка C#
Microsoft Visual Studio .NET - это интегрированная среда разработки для создания, документирования, запуска и отладки программ, написанных на языках . NET .
Эта среда разработки является открытой языковой средой. Наряду с языками программирования, изначально включенными в среду - C ++, C#, J#, Visual Basic, - в нее могут добавляться любые языки программирования, компиляторы которых создаются сторонними разработчиками. Необходимым условием для включения языков в среду Visual Studio .NET является использование единого каркаса – платформы Framework.Net.
Платформа Framework.NET позволяет:
- легко использовать компоненты, разработанных на различных языках;
- разрабатывать единое приложение из нескольких частей на разных языках;
Для разработки приложений в Visual Studio. NET используются проекты.
Проект ( Project ) - это основная единица , с которой имеет дело разработчик. Сначала он должен выбрать тип проекта, после чего Visual Studio создает каркас проекта в соответствии с выбранным типом.
Проект состоит из классов, собранных в одном или нескольких пространствах имен. Пространства имен (Namespaces) позволяют структурировать проекты, содержащие большое число классов , объединяя в одну группу близкие классы.
Несколько проектов могут объединяться в решение (Solution), которое также может включать ресурсы, необходимые этим проектам.
С точки зрения разработчика конечным результатом его работы, получаемым после компиляции исходного программного кода, является решение, а с точки зрения CLR (Common Language Runtime - общеязыковой среды исполнения) – сборка (assembly), содержащая PE файл , т.е. модуль в формате исполняемого файла PE ( Portable Executable) для 32-разрядной ОС Windows либо DLL ( Dynamic Link Library ) файл .
Visual Studio. Net предлагает большое разнообразие возможных типов проектов. Для ознакомления с основами языка С# в основном будут использованы консольные приложения без привлечения привычных в Windows возможностей пользовательского интерфейса.
В C# нет глобальных функций, поэтому по умолчанию при создании консольного приложения объявляется класс Program , который содержит функцию static Main() , служащую начальной точкой выполнения программы. Функция Main может быть объявлена без параметров или с параметром, представляющий собой массив строк.
Также программа на C# может содержать комментарии и атрибуты.
В C# используются однострочные и многострочные комментарии. Однострочный комментарий начинается с пары символов " // ", и весь текст до конца строки является комментарием. Многострочный комментарий начинается с пары символов /* и заканчивается */ .
Атрибут - средство добавления декларативной информации к элементам программного кода. Назначение атрибутов: организация взаимодействия между программными модулями, дополнительная информация об условиях выполнения кода, управление сериализацией (т.е. правила сохранения информации), отладка , и др. Атрибуты могут быть как стандартными, так и заданными пользователем. Стандартные атрибуты используются CLR и влияют на то, как будет выполняться проект. Атрибут размещается в скобках " [] ".
Типы данных C#.Стандарт языка C++ включает следующий набор фундаментальных типов.
- Логический тип ( bool ).
- Символьный тип ( char ).
- Целые типы. Они могут отличаться размером: short, int, long , а также могут быть знаковыми ( signed ) или беззнаковыми ( unsigned ).
- Типы с плавающей точкой. Они также могут отличаться размерами: float , double и long double .
Тип void указывает на отсутствие информации.
К конструируемым типам относятся следующие:
- Указатели (например, char* ).
- Ссылки (например, char& ).
- Массивы (например, char[] ).
Также язык позволяет разработчику конструировать собственные типы:
- Перечислимые типы ( enum ).
- Структуры ( struct ).
- Классы.
В языке C# все типы можно рассматривать и под другим ракурсом, разделив их на четыре категории:
- Типы-значения ( value ).
- Ссылочные ( reference ).
- Указатели ( pointer ).
- Тип void .
Для ссылочного типа значение задает ссылку на область памяти в "куче" ( heap ), где расположен соответствующий объект . Для типа-значения значением являются собственно данные, а память для них выделяется в стеке.
Логический , арифметический, структуры, перечисление относятся типам-значениям. Массивы, строки и классы относятся к ссылочным типам.
И ссылочные, и обычные типы являются производными от базового класса object . В тех случаях, когда обычный тип должен вести себя как объект , создается оболочка ( wrapper ), которую можно рассматривать как ссылочный объект , помещенный в кучу, и в нее копируется значение переменной обычного типа. Оболочка автоматически помечается таким образом, что система знает, какое значение она содержит. Этот процесс назывется упаковкой ( boxing ), а обратный процесс - распаковкой ( unboxing ).
Упаковка происходит автоматически, для этого нужно только присвоить значение обычного типа переменной типа object . Упаковка и распаковка позволяют обрабатывать любой тип как объект . Например, в выражении
целое число 7 упаковывается путем вызова функции Int32.ToString() .
Массивы в C# могут быть многомерными ( multidimensional ) или невыровненными (jagged). Более сложные структуры данных такие, как стек и хеш-таблица определены в пространстве имен System.Collections .
Выражения и операторы C#.Выражения строятся из операндов - констант, переменных, функций, - объединенных знаками операций и скобками. При вычислении выражения определяется его значение и тип.
В таблице ниже приведен список операций C#.
Имя и тип переменной задаются при ее объявлении и остаются неизменными в течение всего времени ее жизни. Особенностью языка C# является требование обязательной инициализации переменной до начала ее использования. Попытка использовать неинициализированную переменную приводит к ошибкам, обнаруживаемым еще на этапе компиляции.
По используемым выражениям и операторам C# похож на C++. Так в программах на C# используются такие операторы как:
- Оператор присваивания ( = )
- Составной оператор ( )
- Операторы выбора: if-else и switch
- Операторы цикла: for , while , оператор
- Операторы break и continue
- Оператор return
- Оператор перехода goto
Кроме того, введены несколько новых инструкций. Например, оператор foreach позволяет получить доступ ко всем элементам массива или коллекции поочередно, в порядке возрастания индексов. Его синтаксис :
В C# процедуры и функции существуют только как методы некоторого класса, они не определены вне класса. Роль библиотек процедур и функций выполняют библиотеки классов. Библиотека классов Framework Class Library ( FCL ), доступная в языке C#, существенно расширяет возможности языка.