Язык программирования C#
- Муслимова А. Г.
- Уроки по языку программирования С#
- Просмотров: 5728
Язык С#. Введение
Причина появления С# и платформы .NET Framework – необходимость противостоять языку Java компании SUN. Причины появления языка Java:
- необходимость обеспечения безопасности выполнения сетевых программ на локальных ПК
- необходимость обеспечения выполнения программ на любом ПК (переносимость программ)
Платформа .NET Framework состоит из:
- среды разработки
- среды выполнения
Среда разработки содержит:
- текстовый редактор
- компилятор
- средства запуска и отладки программ
- библиотеки, содержащие многократно используемые элементы
Среда разработки .NET поддерживает несколько языков:
- C#
- C++
- Visual Basic (VB)
- J#
Компиляторы среды разработки переводят программу не в машинные коды, а в промежуточный язык Intermediate Language (IL), который содержит:
- команды, зависящие от языка программирования
- команды ОС
- команды реального процессора
Программа на промежуточном языке (IL) выполняется средой исполнения (CLR – Command Language Runtime)
Особенности платформы .NET Framework:
- Приложение может разрабатываться на разных языках (С++, С#, J#, Visual Basic)
- Компилятор среды разработки переводит код программы в промежуточный язык (IL)
- Среда исполнения (CLR) – это виртуальная машина, которая транслирует код промежуточного языка в команды реального процессора. Код промежуточного языка – это аналог байт-кода виртуальной машины на Java
- Виртуальная машина закрывает доступ любой программы к ресурсам чужих процессоров, поэтому программа не может нарушить работоспособность других программ или ОС.
- Код на промежуточном языке выполняется под контролем виртуальной машины и, в отличие от обычного кода (Win32 API) называется управляемым кодом
- Содержит библиотеку классов FCL, которая упрощает программирование
Сборки
Сборка – это конечный файл результата компиляции. Наиболее известны 2 типа сборок:
- Исполняемые файлы - .exe
- Динамически подключаемые библиотеки - .dll
Сборки содержат не инструкции реального процессора (Win32), а промежуточный код (IL). Когда пользователь запускает программу, то мгновенно этот код компилируется в машинный код и исполняется процессором.
Различия выполнения кода:
- Машинный код выполняется напрямую процессором, и ОС и не может влиять на ход выполнения программы
- Промежуточный код (IL) выполняется под полным контролем виртуальной машины, обеспечивая безопасность
Первый запуск сборки, из-за компиляции, может занимать продолжительное время, последующие – быстрее, т.к используются результаты предыдущей компиляции
Язык С#
Является наследником языков С/С++, разработан в 2001 году сотрудником Microsoft Эндерсом Хейлсбергом, который является архитектором языков TurboPascal, Delphi.
Алфавит:
- синтаксис языка С++
- допускается использование букв национальных алфавитов
Особенности:
1. namespace – служебное слово, определяющее пространство имен, Hello - имя пространства. Пространство имен – это набор имен, в котором все имена уникальны.
2. Программа состоит из одного класса class Program, в котором имеется один метод Main
3. метод Main в отличии от C++ и Java записан с заглавной буквы
4. метод Main в отличии от C++ описан внутри класса как статический. Ключевое слово static позволяет вызывать метод Main () до создания экземпляра класса.
5. В C# допускается объявлять переменные и методы только внутри класса
6.System – пространство имен, в котором находится класс Console
7. Console - имя класса
8. WriteLine – имя метода
Типы данных C#
В языке С# используется новая классификация типов, подразделяющая типы на значимые и ссылочные. В языке устранена разница между переменными и объектами. Все переменные в С# — тоже объекты, которые имеют единого предка — класс System.Object.
Все типы можно разделить на четыре категории:
- Типы-значения (value) – ячейка памяти хранит данные (java-примитивные)
- Ссылочные (reference) – ссылка на область памяти, где хранится объект
- Указатели (pointer) – имеют ограниченную область действия.
- Тип void.
К значимым типам относятся:
- логический,
- числовой,
- структуры,
- перечисления.
К ссылочным типам относятся:
- Массивы,
- строки
- классы.
Замечание:
Для каждого встроенного типа существует соответствующий тип в CRL (Common Language Runtime). Это означает, что каждый тип имеет два названия – полный(из CLR) и сокращенный, используемый в C#
Базовый тип
Имя типа |
Системный тип |
Значения |
Object |
System.Object |
Предок всех типов |
Логический тип
Имя типа |
Системный тип |
байт |
Значения |
bool |
System.Boolean |
1 |
true или false |
Логический тип в языке С# имеет два значения, вместо них нельзя использовать целочисленные переменные, как это принято в C++.
Целые типы
Имя типа |
Системный тип |
байт |
Значения |
|
sbyte |
System.SByte |
1 |
от -128 до 127 |
-27 – 27 - 1 |
byte |
System.Byte |
1 |
от 0 до 255 |
0 - 28 |
short |
System.Short |
2 |
от -32768 до 32767 |
-215 – 215 - 1 |
ushort |
System.UShort |
2 |
от 0 до 65535 |
0 - 216 |
int |
System.Int32 |
4 |
от -2 109 до 2 109 |
-231- 231 - 1 |
uint |
System.UInt32 |
4 |
от 0 - 4 109 |
0 - 232 |
long |
System.Int64 |
8 |
от -9 1018 до 2 1018 |
263-263-1 |
ulong |
System.UInt64 |
8 |
от 0 до 18 1018 |
0 – 264 |
Вещественные типы
float |
System.Single |
4 |
от -1.5*10-45 до +3.4*1038 c 7 значащими цифрами |
double |
System.Double |
8 |
Содержит значения приблизительно от -5. 0*10-324 до -1.7*10308 c 15-16 значащими цифрами |
Символьный тип
char |
System.Char |
2 |
Символы Unicode |
Строковый тип
string |
System.String |
Строка из Unicode-символов |
Финансовый тип
decimal |
System.Decimal |
12 |
28 значащих цифр |
Вывод данных
Ввод данных
Ввод с клавиатуры всегда символьный!
Пример. Программа суммирует два вещественных числа и выводит результат на экран.