1. Введение в экосистему .NET, типы данных и управляющие конструкции
Введение в экосистему .NET, типы данных и управляющие конструкции
Добро пожаловать на курс «Основы разработки на языке C#». Это первая статья, с которой начнется ваше погружение в мир профессиональной разработки программного обеспечения. C# (произносится как «си-шарп») — это мощный, строго типизированный объектно-ориентированный язык программирования, разработанный компанией Microsoft. Сегодня он используется повсюду: от создания мобильных приложений и игр до разработки сложных корпоративных систем и искусственного интеллекта.
В этой статье мы разберем фундамент, на котором строится весь язык: платформу .NET, базовые типы данных и конструкции, позволяющие управлять ходом выполнения программы.
Что такое экосистема .NET?
Многие новички путают понятия C# и .NET. Давайте внесем ясность. C# — это язык, то есть набор правил и синтаксиса, с помощью которых мы пишем код. .NET — это платформа (или экосистема), которая позволяет этому коду работать.
Представьте, что C# — это автомобиль, а .NET — это двигатель, топливная система, колеса и даже дорога, по которой этот автомобиль едет. Без платформы язык программирования остался бы просто текстом в редакторе.
Как работает .NET?
Когда вы пишете код на C#, компьютер не понимает его напрямую. Процесс запуска программы выглядит следующим образом:
!Схема превращения исходного кода C# в машинные инструкции через CLR
Благодаря такой архитектуре, программы на .NET могут работать на разных операционных системах (Windows, Linux, macOS), если там установлена соответствующая версия среды выполнения.
Структура простейшей программы
Давайте посмотрим, как выглядит минимальная программа на C#. Традиционно мы начнем с вывода фразы «Hello, World!».
Разберем этот код по строкам:
* using System; — подключение пространства имен System. Это как библиотека, в которой хранятся базовые инструменты, например, работа с консолью.
* namespace HelloWorldApp — пространство имен вашего приложения. Это контейнер, помогающий организовать код и избежать конфликтов имен.
* class Program — объявление класса. В C# весь код должен находиться внутри классов.
* static void Main — это точка входа. Именно с этого метода начинается выполнение любой консольной программы.
Переменные и типы данных
C# — это язык со строгой статической типизацией. Это означает, что каждая переменная должна иметь определенный тип, и этот тип не может внезапно измениться в процессе работы программы (за редкими исключениями). Это помогает избегать множества ошибок еще на этапе написания кода.
Объявление переменных
Чтобы создать переменную, нужно указать её тип и имя:
Основные типы данных
В C# существует множество типов данных, но для начала нам понадобятся самые основные. Их можно разделить на простые (значимые) и ссылочные.
| Тип C# | Описание | Пример значения |
| :--- | :--- | :--- |
| int | Целое число | 42, -10, 0 |
| double | Дробное число (с плавающей точкой) | 3.14, -0.01 |
| bool | Логическое значение | true, false |
| char | Одиночный символ | 'A', '7', '!' |
| string | Строка (текст) | "Привет, мир!" |
Диапазоны значений
Важно понимать, что числовые типы имеют ограничения по памяти. Например, тип int занимает в памяти 32 бита. Давайте рассчитаем, какое максимальное число можно в него записать. Так как один бит тратится на знак (плюс или минус), для самого числа остается 31 бит.
Формула для вычисления максимального значения знакового целого типа выглядит так:
Где — максимальное значение, которое может хранить переменная, а — количество бит, выделенных под этот тип данных (для int это 32).
Соответственно, минимальное значение:
Где — минимальное возможное значение, а — разрядность типа (количество бит).
Если подставить 32 вместо , мы получим диапазон от -2,147,483,648 до 2,147,483,647. Если вы попытаетесь записать число больше этого диапазона, произойдет ошибка переполнения.
Управляющие конструкции
Код, который выполняется просто сверху вниз, редко бывает полезен. Нам часто нужно принимать решения или повторять действия. Для этого используются управляющие конструкции.
Условные операторы (if / else)
Конструкция if позволяет выполнить блок кода, только если определенное условие истинно (true).
Здесь программа проверяет условия по очереди. Как только одно из них сработает, остальные будут проигнорированы.
Конструкция switch
Если вам нужно проверить одну переменную на множество конкретных значений, удобнее использовать switch:
Обратите внимание на ключевое слово break — оно необходимо, чтобы выйти из конструкции switch после выполнения нужного блока.
Циклы
Циклы позволяют выполнять один и тот же код многократно.
#### Цикл while
Выполняется до тех пор, пока условие истинно. Проверка происходит перед каждой итерацией.
#### Цикл do-while
Похож на while, но гарантирует, что код выполнится хотя бы один раз, так как проверка условия происходит после итерации.
#### Цикл for
Самый популярный цикл, когда мы заранее знаем, сколько раз нужно повторить действие. Он состоит из инициализации, условия и итератора.
> Совет: Используйте цикл for, когда работаете со счетчиками, и while, когда количество повторений заранее неизвестно и зависит от внешних условий.
Заключение
Сегодня мы сделали первый шаг в изучении C#. Мы узнали, что C# работает поверх мощной платформы .NET, которая берет на себя управление памятью и выполнение кода. Мы рассмотрели базовые «кирпичики» данных: целые числа (int), строки (string), логические значения (bool). Также мы научились управлять потоком программы с помощью условий и циклов.
В следующих статьях мы углубимся в объектно-ориентированное программирование, узнаем, что такое классы и объекты, и как создавать сложные структуры данных.