Top.Mail.Ru

Язык С#. Введение

Причина появления С# и платформы .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.

Все типы можно разделить на четыре категории:

  1. Типы-значения (value)  – ячейка памяти хранит данные (java-примитивные)
  2. Ссылочные (reference) – ссылка на область памяти, где хранится объект
  3. Указатели (pointer) – имеют ограниченную область действия.
  4. Тип 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 значащих цифр

Вывод данных

Ввод данных

Ввод с клавиатуры всегда символьный!

Пример. Программа суммирует два вещественных числа и выводит результат на экран.