C# для начинающих: Основы программирования на .NET

Этот курс предназначен для быстрого старта в разработке на языке C#, охватывая всё от синтаксиса до принципов ООП. Вы научитесь писать чистый код, работать с данными и создавать свои первые консольные приложения.

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

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

Добро пожаловать в курс C# для начинающих! Если вы читаете эту статью, значит, вы решили освоить один из самых мощных, востребованных и элегантных языков программирования в мире. В этой первой статье мы разберем фундамент, на котором будет строиться все ваше дальнейшее обучение: что такое платформа .NET, как подготовить компьютер к работе и как написать свою первую программу.

Что такое C# и .NET?

Новички часто путают понятия C# (произносится как «си-шарп») и .NET. Давайте сразу внесем ясность.

C# — это язык программирования. Это набор правил, слов и синтаксических конструкций, с помощью которых мы пишем инструкции для компьютера. Он был разработан компанией Microsoft и впервые представлен в 2000 году.

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

Как это работает?

Когда вы пишете код на C#, компьютер не понимает его напрямую. Процесс превращения вашего текста в работающую программу выглядит следующим образом:

  • Вы пишете код на C#.
  • Специальная программа (компилятор) проверяет его на ошибки и переводит на промежуточный язык (IL — Intermediate Language).
  • Среда выполнения .NET (CLR — Common Language Runtime) берет этот промежуточный код и переводит его в машинный код (нули и единицы), который понимает процессор вашего компьютера.
  • !Схема преобразования кода C# в машинные инструкции через платформу .NET

    Благодаря этой архитектуре, программы на C# могут работать не только на Windows, но и на macOS, Linux, iOS и Android (с использованием соответствующих инструментов .NET).

    Настройка окружения

    Чтобы начать программировать, нам нужна IDE (Integrated Development Environment) — интегрированная среда разработки. Это «умный» текстовый редактор, который помогает писать код, находит ошибки и позволяет запускать программы одной кнопкой.

    Для этого курса мы рекомендуем использовать Visual Studio Community. Это бесплатная, полнофункциональная версия профессиональной среды от Microsoft.

    Установка Visual Studio

  • Перейдите на официальный сайт Visual Studio.
  • Скачайте версию Community 2022 (или новее).
  • Запустите установщик.
  • Важный момент: В окне выбора рабочих нагрузок (Workloads) поставьте галочку напротив пункта «Разработка классических приложений .NET» (.NET desktop development). Это установит все необходимые компоненты для создания консольных приложений, с которых мы начнем.
  • Нажмите «Установить».
  • > Если вы пользуетесь macOS или Linux, вы можете использовать Visual Studio Code вместе с расширением C# Dev Kit, однако полноценная Visual Studio на Windows предоставляет наиболее комфортный старт для новичков.

    Ваша первая программа: Hello, World!

    После установки запустите Visual Studio и выберите «Создание нового проекта». В поиске шаблонов найдите «Консольное приложение» (Console App) и нажмите «Далее». Дайте проекту имя, например, MyFirstApp, и нажмите «Создать».

    Вы увидите примерно следующий код:

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

    Разбор анатомии программы

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

  • using System; — это подключение пространства имен. Представьте, что .NET — это огромная библиотека книг. Команда using говорит: «Я буду использовать книги с полки System». Именно там лежит инструмент для работы с консолью.
  • namespace MyFirstApp — это имя вашего проекта (пространство имен). Оно служит контейнером для вашего кода, чтобы он не смешивался с чужим кодом.
  • class Program — в C# весь код живет внутри классов. Класс — это как чертеж или шаблон. Пока просто запомните: код не может существовать в пустоте, он должен быть внутри класса.
  • static void Main(string[] args) — это метод Main. Это точка входа в программу. Когда вы запускаете приложение, компьютер ищет именно метод Main и начинает выполнять команды, написанные внутри него.
  • { ... } — фигурные скобки обозначают начало и конец блока кода. Все, что внутри скобок метода Main, будет выполнено.
  • Console.WriteLine("Hello, World!"); — это команда вывода текста на экран. Мы обращаемся к классу Console и просим выполнить действие WriteLine (написать строку).
  • Базовый синтаксис C#

    Теперь, когда мы запустили первую программу, изучим основные правила написания кода.

    1. Точка с запятой

    В C# каждая команда (инструкция) должна заканчиваться точкой с запятой ;. Это как точка в конце предложения в русском языке. Если вы забудете поставить ;, программа не запустится, и компилятор выдаст ошибку.

    2. Регистрозависимость

    C# — это регистрозависимый язык (case-sensitive). Это значит, что Console и console — это два разных слова для компьютера.

    * Console.WriteLine — сработает. * console.writeline — приведет к ошибке.

    Все ключевые слова в C# имеют строго определенный регистр.

    3. Комментарии

    Комментарии — это текст, который игнорируется компьютером, но полезен для программиста. Они помогают пояснить, что делает код.

    * // — однострочный комментарий. Все, что написано после двух слешей до конца строки, не выполняется. / ... */ — многострочный комментарий.

    Переменные и типы данных

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

    Представьте переменную как коробку. На коробке мы пишем название (имя переменной) и кладем внутрь предмет (значение).

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

    Объявление переменной

    Синтаксис создания переменной выглядит так: ТипДанных ИмяПеременной = Значение;

    Основные типы данных

    На начальном этапе вам понадобятся три основных типа:

  • int (от integer) — целые числа (например: 10, -5, 42).
  • string — строки, то есть текст. Текст всегда пишется в двойных кавычках (например: "Привет").
  • bool (от boolean) — логический тип. Может быть только true (истина) или false (ложь).
  • Примеры:

    !Визуальная метафора переменных как коробок с данными разных типов

    Вывод переменных в консоль

    Мы можем выводить значения переменных на экран, объединяя их с текстом. Для этого используется знак + (конкатенация) или интерполяция строк (знак "Игрок {name} достиг уровня {level}");

    Обратите внимание: Console.ReadLine() всегда возвращает строку (string`). Если вы захотите ввести число для математических операций, его придется преобразовать из строки в число (об этом мы поговорим в следующих статьях).

    Заключение

    Поздравляю! Вы сделали первый шаг в мир .NET разработки. Сегодня мы:

    * Узнали разницу между языком C# и платформой .NET. * Настроили Visual Studio. * Разобрали структуру простейшей программы. * Изучили базовый синтаксис, переменные и вывод данных.

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

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

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

    В предыдущей статье мы научились создавать переменные и выводить их на экран. Однако до сих пор наши программы были линейными: они выполняли команды строго по порядку, одну за другой, сверху вниз. Но реальная жизнь полна выбора и повторений. Мы принимаем решения («Если пойдет дождь, я возьму зонт») и выполняем рутинные действия («Пока не вымою всю посуду, я не уйду с кухни»).

    Чтобы наши программы стали по-настоящему полезными, мы должны научить их принимать решения и повторять действия. В этой статье мы разберем инструменты, которые превращают простой скрипт в сложный алгоритм: логические операции, условные конструкции и циклы.

    Логика — фундамент принятия решений

    Прежде чем писать if (если), нужно понять, как компьютер отвечает на вопросы. В мире C# на любой вопрос, подразумевающий принятие решения, есть только два ответа: Да (true) или Нет (false).

    Как вы помните из прошлой лекции, для этого существует тип данных bool.

    Операторы сравнения

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

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

    Пример:

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

    Часто нам нужно проверить сразу несколько условий. Например: «Если у пользователя есть деньги И товар есть на складе». Для этого используются логические связки.

  • Логическое И (&&): Результат истинен только тогда, когда оба условия истинны.
  • Логическое ИЛИ (||): Результат истинен, если хотя бы одно из условий истинно.
  • Логическое НЕ (!): Инвертирует значение (меняет true на false и наоборот).
  • Представим это математически. Допустим, мы проверяем четность числа . Условие четности выглядит так:

    где — проверяемое число, — операция взятия остатка от деления, а — ожидаемый остаток. Если остаток равен нулю, число четное.

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

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

    Самая базовая конструкция управления потоком — это оператор if (если).

    !Блок-схема работы условного оператора if-else

    Синтаксис if

    Если условие в скобках ложно, блок кода просто пропускается.

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

    Часто нам нужно выполнить альтернативное действие, если условие не выполнилось. Для этого существует else (иначе).

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

    Если вариантов больше двух, мы можем использовать цепочку проверок.

    Компьютер проверяет условия сверху вниз. Как только он находит первое истинное условие (true), он выполняет его блок и выходит из всей конструкции. Остальные проверки игнорируются.

    Оператор switch

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

    Обратите внимание на ключевое слово break. Оно обязательно в C# для завершения каждого case. Блок default срабатывает, если ни один из вариантов не подошел (аналог последнего else).

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

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

    Цикл while (Пока)

    Это самый простой цикл. Он работает до тех пор, пока условие истинно. Проверка происходит перед выполнением тела цикла.

    !Визуализация жизненного цикла итерации в for

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

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

    * break — немедленно прерывает выполнение цикла и выходит из него. * continue — пропускает текущую итерацию и переходит к следующей (к проверке условия).

    Пример с continue (вывод только нечетных чисел):

    Практика: Игра «Угадай число»

    Давайте объединим знания из этой и предыдущей статьи, чтобы написать первую настоящую игру. Компьютер загадает число, а пользователь будет пытаться его угадать.

    Для генерации случайных чисел нам понадобится класс Random. Рассмотрим простую формулу диапазона:

    где — случайное число, — нижняя граница (включительно), а — верхняя граница (исключительно). В C# метод Next(1, 101) вернет число от 1 до 100.

    Вот полный код программы:

    Разбор логики игры

  • Мы используем цикл while, потому что заранее не знаем, сколько попыток понадобится игроку.
  • Внутри цикла мы считываем ввод и преобразуем его в число (int.Parse).
  • С помощью цепочки if-else if-else мы даем подсказки игроку.
  • Как только userGuess становится равен secretNumber, условие цикла while (userGuess != secretNumber) становится ложным (false), и программа завершается.
  • Заключение

    Сегодня вы освоили «нервную систему» ваших программ. Теперь ваш код может реагировать на действия пользователя и выполнять сложные повторяющиеся задачи. Условные операторы и циклы — это инструменты, которыми вы будете пользоваться каждый день в своей карьере разработчика.

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