Файл: Роль платформы. 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#
Рассматриваемые вопросы:
-
Определение массива -
Индексы и получение элементов массива -
Свойство Length и длина массива -
Получение элементов с конца массива -
Перебор массивов -
Многомерные массивы -
Массив массивов -
Основные понятия массивов
Массив представляет набор однотипных данных. Объявление массива похоже на объявление переменной за тем исключением, что после указания типа ставятся квадратные скобки.
Синтаксис объявления массива:
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]);
}