C#
Как писать код на C#: первый рабочий порядок
Писать код на C# лучше с маленькой задачи: получить данные, обработать их, вывести результат и проверить ошибки. Не начинайте с большого приложения. Создайте консольный проект, откройте Program.cs, напишите несколько строк, запустите dotnet run, затем улучшайте код шаг за шагом
Создайте проект
В терминале:
dotnet new console -n FirstCode
cd FirstCode
dotnet run
Откройте Program.cs. В современных шаблонах C# можно писать код прямо в файле без явного class Program и Main. Это называется top-level statements
Console.WriteLine("C# работает");
Если команда запускается, можно писать первую задачу
Думайте задачей, а не синтаксисом
Например, нужно посчитать итог заказа. Разложите задачу:
- Спросить цену.
- Спросить количество.
- Преобразовать ввод в числа.
- Посчитать итог.
- Вывести результат.
Код:
Console.Write("Цена: ");
decimal price = decimal.Parse(Console.ReadLine() ?? "0");
Console.Write("Количество: ");
int count = int.Parse(Console.ReadLine() ?? "0");
decimal total = price * count;
Console.WriteLine($"Итого: {total}");
Это уже рабочая программа. Она не идеальная, но ее можно запустить и проверить
Улучшите проверку ввода
Parse бросит ошибку, если пользователь введет текст вместо числа. Для учебной программы лучше использовать TryParse
Console.Write("Цена: ");
string? input = Console.ReadLine();
if (!decimal.TryParse(input, out decimal price))
{
Console.WriteLine("Введите цену числом");
return;
}
Console.WriteLine($"Цена принята: {price}");
Так код не падает, а объясняет пользователю, что исправить
Вынесите расчет в метод
Когда код стал длиннее, часть логики лучше вынести в метод
static decimal CalculateTotal(decimal price, int count)
{
return price * count;
}
decimal total = CalculateTotal(1200, 3);
Console.WriteLine(total);
Метод делает код понятнее: название говорит, что происходит, а детали расчета спрятаны внутри
Как читать ошибки
Если C# пишет ошибку, сначала смотрите номер строки. Частые проблемы:
- забыта точка с запятой;
- переменная названа иначе;
- тип не совпал;
- строку пытаются умножить на число;
- метод вызывается до объявления в неподходящем месте.
Не переписывайте весь файл. Исправляйте одну ошибку за раз и снова запускайте dotnet run
Полезный прием — читать сообщение слева направо. В ошибке обычно есть файл, строка, код ошибки и текст. Например, если компилятор пишет, что имя переменной не существует, проверьте опечатку и область видимости. Если пишет про несовместимые типы, посмотрите, не пытаетесь ли вы присвоить строку числу
Простой шаблон мышления
Для большинства первых программ подходит схема:
- входные данные;
- проверка;
- расчет;
- вывод;
- повторение или завершение.
Если задача кажется сложной, напишите эти пять пунктов комментариями, а потом заменяйте комментарии кодом
Например:
// 1. Спросить сумму
// 2. Проверить ввод
// 3. Посчитать доставку
// 4. Вывести итог
Такой рабочий план не мешает коду. Он помогает не держать всю задачу в голове и постепенно превращать шаги в программу
Еще полезно после каждого изменения запускать проект. Не пишите двадцать строк вслепую. Добавили ввод — запустили. Добавили проверку — запустили. Вынесли метод — запустили. Так ошибка появляется сразу после конкретного действия, и ее проще найти
Мини-задача
Напишите программу «калькулятор доставки». Пользователь вводит сумму заказа. Если сумма больше 3000, доставка бесплатная, иначе стоит 350 рублей. Выведите итоговую сумму и отдельной строкой стоимость доставки
Что почитать дальше по C#
- C# с нуля: первый проект через dotnet new
- Типы, переменные и строки в C#
- Console.ReadLine в C#
- Рубрика C#
Что почитать дальше по C#
Если нужен общий маршрут по теме, откройте рубрику C#. Для соседних задач пригодятся эти разборы:
- ASP.NET Core Minimal API: первый endpoint
- Async await в C#: первый пример без магии
- C# для начинающих: что учить первым и как сделать первый результат
- C# с нуля: первый проект через dotnet new