Файл: Роль платформы. Net c# спроектирован и разработан специально для применения с. Net framework. Назначение. Net framework.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 09.11.2023

Просмотров: 19

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Введение в язык.

Язык C# был создан специально для работы с фреймворком .NET, однако само понятие .NET несколько шире.

Роль платформы .NET

C# спроектирован и разработан специально для применения с .NET Framework.

Назначение .NET Framework — служить средой для поддержки разработки и выполнения сильно распределенных компонентных приложений. Она обеспечивает совместное использование разных языков программирования, а также безопасность, переносимость программ и общую модель программирования для платформы Windows.

Фреймворк .NET представляет мощную платформу для создания приложений. Можно выделить следующие ее основные черты:

  • Поддержка нескольких языков:

Основой платформы является общеязыковая среда исполнения Common Language Runtime (CLR), благодаря чему .NET поддерживает несколько языков: наряду с C# это также VB.NET, C++, F#. При компиляции код на любом из этих языков компилируется в сборку на общем языке CIL (Common Intermediate Language) - своего рода ассемблер платформы .NET.

  • Кроссплатформенность:

.NET является переносимой платформой. Используя различные технологии на платформе .NET, можно разрабатывать приложения на языке C# для самых разных платформ - Windows, MacOS, Linux, Android, iOS, Tizen.

  • Мощная библиотека классов:

.NET представляет единую для всех поддерживаемых языков библиотеку классов. И какое бы приложение мы не собирались писать на C# - текстовый редактор, чат или сложный веб-сайт - так или иначе мы задействуем библиотеку классов .NET.

  • Разнообразие технологий:

Общеязыковая среда исполнения CLR и базовая библиотека классов являются основой для целого стека технологий, которые разработчики могут задействовать при построении тех или иных приложений.

Что такое CLR?

CLR (Common language runtime) — общеязыковая исполняющая среда. Она обеспечивает интеграцию языков и позволяет объектам благодаря стандартному набору типов и метаданным), созданным на одном языке, быть «равноправными гражданами» кода, написанного на другом.



Для того, чтобы понять весь процесс работы CLR, необходимо вначале разобраться во всей цепочке понимания кода компьютером.


Файл с исходным кодом на языке включенным в список .Net компилируется с помощью компилятора языка (например C# - компилятор C#) в IL (Intermediate Language, промежуточный код).

IL/CIL(Common Intermediate Language)/MSIL(Microsoft IL) - промежуточный байт код, подготовленный к компилированию в язык assembler, который понимает компьютер.

Нельзя забывать, что для .Net в помощь CLR, передаются метаданные. Метаданные - вспомогательные данные о коде языка. К примеру описание типов данных языка.

Финальная часть!


Остается финишная прямая. Входными данными для CLR являются метаданные и IL код, на выходе готовый код ассемблера. Таким образом работают программы .Net.

JIT Компиляция

Как выше писалось, код на C# компилируется в приложения или сборки с расширениями exe или dll на языке CIL. Далее при запуске на выполнение подобного приложения происходит JIT-компиляция (Just-In-Time) в машинный код, который затем выполняется. При этом, поскольку наше приложение может быть большим и содержать кучу инструкций, в текущий момент времени будет компилироваться лишь та часть приложения, к которой непосредственно идет обращение. Если мы обратимся к другой части кода, то она будет скомпилирована из CIL в машинный код. При том уже скомпилированная часть приложения сохраняется до завершения работы программы. В итоге это повышает производительность.

Управляемый и неуправляемый код

Нередко приложение, созданное на C#, называют управляемым кодом (managed code). Что это значит? А это значит, что данное приложение создано на основе платформы .NET и поэтому управляется общеязыковой средой CLR, которая загружает приложение и при необходимости очищает память. Но есть также приложения, например, созданные на языке С++, которые компилируются не в общий язык CIL, как C#, VB.NET или F#, а в обычный машинный код. В этом случае .NET не управляет приложением.

В то же время платформа .NET предоставляет возможности для взаимодействия с неуправляемым кодом..

Типы данных

Числовые (целочисленные) типы

Тип

Размер

Мин

Мах

byte

1

0

255

sbyte

1

-128

127

short

2

-32768

32767

ushort

2

0

65535

int

4

-2147483648

2147483647

uint

4

0

4294967295

long

8

–9223372036854 775 808

9223372036854 775807

ulong

8

0

18446744073709 551615

Числовые (с плавающей точкой) типы

float

4

-3.4*10^38

3.4*10^38

double

8

-1,797693134

86232E+308

1,797693134

86232E+308

decimal

16

-79228162514264

337593543950335

79228162514264

337593543950335

Символьные типы(строковые)

char

2







string

?

?

?

Логический тип

bool

1

False

True

Особые типы

object

N/A

N/A

N/A

dynamic

N/A

N/A

N/A


Литералы

Литералы представляют неизменяемые значения (иногда их еще называют константами). Литералы можно передавать переменным в качестве значения. Литералы бывают:

-логическими;

-целочисленными;

-вещественными;

-символьными;

-строчными;

И отдельный литерал представляет ключевое слово null.

Глава

Массивы в C#

Рассматриваемые вопросы:

  1. Определение массива

  2. Индексы и получение элементов массива

  3. Свойство Length и длина массива

  4. Получение элементов с конца массива

  5. Перебор массивов

  6. Многомерные массивы

  7. Массив массивов

  8. Основные понятия массивов

Массив представляет набор однотипных данных. Объявление массива похоже на объявление переменной за тем исключением, что после указания типа ставятся квадратные скобки.

Синтаксис объявления массива:

int [] numbers;

Есть несколько способов создания массива в C#:

int [] nums2 = new int [4] { 1, 2, 3, 5 };

int [] nums3 = new int [] { 1, 2, 3, 5 };

int [] nums4 = new [] { 1, 2, 3, 5 };

int [] nums5 = { 1, 2, 3, 5 };

Так же и объявляются массивы других типов. Например тип string:

string[] people = { "Tom", "Sam", "Bob" };

Для обращения к элементам массива используют индексы. Индекс это номер элемента в массиве. Нумерация массива начинается с 0.

Console.WriteLine (nums [3]);

Также мы можем изменить элемент массива по индексу:

numbers[1] = 505; // изменяем первый элемент

Для того чтобы узнать длину массива, используется свойство Length:

Console.WriteLine (nums.Length);

Для получения элемента с конца массива:

Console.WriteLine(numbers [nums.Length - 1]); // отнимаем с длины массива 1

Начиная, с версии C# 8.0 в язык был добавлен специальный оператор ^, с помощью которого можно задать индекс относительно конца коллекции:

Console.WriteLine(numbers[^1]); // первыйсконцаэлемент

Перебор массивов

Для перебора массивов мы можем использовать различные типы циклов:

Например цикл foreach:

int[] numbers = { 1, 2, 3, 4, 5 };

foreach (int i in numbers)

{

Console.WriteLine(i);

}

Так же мы можем использовать цикл for:

for (int i = 0; i < numbers.Length; i++){

Console.WriteLine(numbers[i]);

}

В то же время цикл for более гибкий по сравнению с foreach. Если foreach последовательно извлекает элементы контейнера и только для чтения, то в цикле
for мы можем перескакивать на несколько элементов вперед в зависимости от приращения счетчика, а также можем изменять элементы:

for (int i = 0; i < numbers.Length; i++)

{

numbers[i] = numbers[i] * 2;

Console.WriteLine(numbers[i]);

}