Основы программирования на C#: от синтаксиса до ООП

Этот курс поможет освоить современный C# с нуля, следуя актуальным рекомендациям и практикам [habr.com](https://habr.com/ru/articles/983416/). Вы изучите базовый синтаксис, работу с данными и ключевые принципы объектно-ориентированного программирования, необходимые для старта в .NET разработке [dotnet.microsoft.com](https://dotnet.microsoft.com/ru-ru/learntocode).

1. Введение в C#: установка окружения, переменные и типы данных

Введение в C#: установка окружения, переменные и типы данных

Добро пожаловать в мир C#. Это мощный, строго типизированный язык программирования, разработанный компанией Microsoft. На нём создают всё: от простых консольных утилит и веб-сайтов до сложных корпоративных систем и игр на движке Unity.

В этой статье мы подготовим рабочее место, напишем первую программу и разберёмся, как компьютер хранит данные.

Установка окружения

Чтобы писать код, нужен специальный инструмент — среда разработки (IDE). Самый популярный и удобный вариант для Windows — Visual Studio.

Пошаговая установка

  • Скачайте Visual Studio Community (это бесплатная версия) с официального сайта.
  • Запустите установщик.
  • В окне выбора компонентов («Рабочие нагрузки») поставьте галочку напротив пункта «Разработка классических приложений .NET».
  • Нажмите «Установить».
  • Если вы пользуетесь macOS или Linux, или у вас слабый компьютер, отличной альтернативой будет VS Code вместе с установленным .NET SDK.

    > Для подготовки рабочего окружения в Windows, необходимо скачать и установить полнофункциональную среду разработки – Microsoft Visual Studio Community. > > proglib.io

    Первая программа

    Откройте Visual Studio и создайте новый проект. Выберите шаблон «Консольное приложение» (Console App). Это простейший тип программ, работающих через текстовый интерфейс.

    Visual Studio сгенерирует файл Program.cs со следующим кодом:

    Нажмите зелёную кнопку «Пуск» (или клавишу F5). На экране появится чёрное окно с надписью Hello, World!. Поздравляем, вы написали первую программу!

    Команда Console.WriteLine отвечает за вывод текста на экран. Текст обязательно должен быть заключён в двойные кавычки.

    Переменные

    Программа должна не просто выводить текст, но и запоминать данные. Для этого используются переменные.

    Представьте переменную как коробку, на которой написано имя. В эту коробку можно положить какое-то значение. В C# каждая коробка имеет строгий формат (тип данных) — вы не можете положить текст в коробку, предназначенную для целых чисел.

    Объявление и инициализация

    Чтобы создать переменную, нужно указать её тип и имя:

    Можно сделать это в одну строку:

    Согласно документации:

    > C# — это строго типизированный язык. Каждая переменная и константа имеют тип, как и каждое выражение, которое оценивает значение. > > learn.microsoft.com

    Правила именования

    Имена переменных должны быть понятными. Используйте стиль camelCase (первая буква маленькая, каждое следующее слово с большой):

    * userAge — хорошо. * x — плохо (непонятно, что это). * UserAge — плохо (с большой буквы называют классы и методы).

    Типы данных

    В C# много типов данных, но для начала достаточно знать основные. Они делятся на простые (значимые) и ссылочные.

    Основные примитивные типы

    | Тип | Описание | Пример | | :--- | :--- | :--- | | int | Целые числа | int count = 10; | | double | Дробные числа | double price = 99.99; | | char | Один символ (в одинарных кавычках) | char letter = 'A'; | | string | Строка текста (в двойных кавычках) | string name = "Alice"; | | bool | Логическое значение (истина/ложь) | bool isActive = true; |

    Ключевое слово var

    Если вы сразу присваиваете значение переменной, C# может сам догадаться, какой это тип. Для этого используется ключевое слово var.

    Важно: var не делает переменную бестиповой. После объявления тип фиксируется навсегда. Вы не сможете записать строку в переменную speed.

    Операции с данными

    С числовыми переменными можно выполнять математические действия. Рассмотрим пример расчёта стоимости покупки.

    Допустим, у нас есть цена товара и налог. Мы хотим найти итоговую сумму. В математике это выглядит так:

    где — итоговая сумма, — цена товара, — сумма налога.

    В коде это будет выглядеть так:

    Если представить это вычисление в виде арифметического столбика, то операция сложения переменных происходит следующим образом:

    где — значение переменной price, — значение переменной tax, а — результат, который запишется в переменную total.

    Склеивание строк (Конкатенация)

    Строки можно складывать друг с другом. Это называется конкатенацией.

    Более современный способ — интерполяция строк (со знаком "{firstName} {lastName}"; `

    Итоги

    * Для разработки на C# лучше всего использовать Visual Studio (Windows) или VS Code (кроссплатформенно). * Переменная — это именованная ячейка памяти строго определённого типа. * Основные типы данных: int (целые), double (дробные), string (текст), bool (логика). * Ключевое слово var` позволяет компилятору автоматически определить тип переменной по её значению. * C# — строго типизированный язык: нельзя присвоить числовой переменной строку и наоборот.

    2. Управляющие конструкции: условные операторы и циклы

    Управляющие конструкции: условные операторы и циклы

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

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

    Логический тип данных и операции сравнения

    Прежде чем переходить к условиям, вспомним тип данных bool. Он может принимать только два значения: true (истина) и false (ложь). Именно на этом строятся все проверки в C#.

    Чтобы получить true или false, мы часто сравниваем значения. Вот основные операторы сравнения:

    * == — равно (не путайте с = — присваиванием). * != — не равно. * > — больше. * < — меньше. * >= — больше или равно. * <= — меньше или равно.

    Условные операторы: if и else

    Конструкция if (если) позволяет выполнить блок кода, только если условие истинно.

    Базовый синтаксис

    Если переменная age будет меньше 18, программа просто пропустит код внутри фигурных скобок.

    Конструкция else

    Часто нам нужно предусмотреть альтернативный сценарий: «Если условие верно, сделай А, иначе сделай Б». Для этого используется ключевое слово else.

    Согласно документации Microsoft:

    > Оператор if выбирает инструкцию для выполнения на основе значения логического выражения. Оператор if-else позволяет выбрать, какие из двух путей кода следует выполнять на основе логического выражения. > > learn.microsoft.com

    Цепочка else if

    Если условий больше двух, можно использовать else if:

    Логические операторы

    Иногда нужно проверить сразу несколько условий. Для этого используются логические операторы:

    * && (И) — оба условия должны быть истинны. * || (ИЛИ) — хотя бы одно условие должно быть истинно. * ! (НЕ) — инвертирует значение (меняет true на false и наоборот).

    Пример проверки логина и пароля:

    Оператор switch

    Если вам нужно сравнить одну переменную со множеством конкретных значений, конструкция if-else может стать громоздкой. Элегантнее использовать switch.

    Обратите внимание на ключевое слово break. Оно обязательно в C# для завершения каждого кейса, чтобы выполнение не «провалилось» в следующий блок.

    Циклы: автоматизация повторений

    Циклы позволяют выполнять один и тот же блок кода многократно. Это основа автоматизации.

    Цикл while

    Цикл while (пока) выполняется до тех пор, пока условие истинно. Проверка происходит перед каждой итерацией (повторением).

    Математический пример: Сумма чисел

    Допустим, нам нужно найти сумму всех чисел от 1 до . В математике это записывается через знак суммы (сигма):

    Где — итоговая сумма, — переменная-счетчик, которая меняется от до , а — верхняя граница (например, 100).

    Реализуем это в коде:

    В данном случае цикл for идеально подходит, так как мы точно знаем границы диапазона.

    Управление циклами: break и continue

    Иногда нужно вмешаться в работу цикла:

  • break — немедленно прерывает выполнение цикла полностью.
  • continue — пропускает текущую итерацию и переходит к следующей.
  • Пример с пропуском четных чисел:

    Итоги

    * Условные операторы (if, else, switch) позволяют программе принимать решения в зависимости от данных. * Логические операции (&&, ||, !) помогают комбинировать несколько условий. * Циклы (while, do-while, for) используются для многократного повторения кода. * Цикл for лучше всего подходит, когда известно количество повторений, а while — когда мы ждем наступления определенного события. * Операторы break и continue дают тонкий контроль над потоком выполнения цикла.