Перейти к содержанию
Educora
Начальный12 мин1 / 16

Что такое C#? .NET и первая программа

Узнай, что такое язык C# и платформа .NET, где они применяются, и напиши первую программу.

Проверь себя
В этом уроке ты узнаешь
  • Объяснять, что такое C# и .NET и где они применяются
  • Выводить на экран текст и результаты вычислений с помощью Console.WriteLine
  • Запускать программу командой dotnet run, писать комментарии и читать ошибки компилятора

Игры на Unity, сайты интернет-магазинов, настольные программы для Windows, серверы в облаке — всё это можно написать на одном языке: C# (читается «си шарп»). В этом уроке ты узнаешь, что такое C#, познакомишься с платформой .NET, на которой он работает, и напишешь свою первую программу.

C# и .NET

C# — современный объектно-ориентированный язык программирования, созданный компанией Microsoft. Его разработала команда под руководством Андерса Хейлсберга, первая версия вышла в 2002 году. C# — язык со статической типизацией: тип каждого значения известен заранее, поэтому многие ошибки находит компилятор ещё до запуска программы.

Определение
.NET

Бесплатная платформа Microsoft с открытым исходным кодом для создания и запуска программ на C#. Работает в Windows, macOS и Linux и включает огромный набор готовых библиотек.

Компьютер не понимает твой код напрямую. Сначала компилятор C# переводит его в промежуточный язык (IL), а при запуске программы среда выполнения .NET (CLR) превращает этот код в машинный код для процессора. Поэтому одна и та же программа может работать в разных операционных системах.

Где применяется C#?

  • Веб — сайты, веб-API и онлайн-сервисы на ASP.NET Core.
  • Игры — скрипты в игровом движке Unity пишутся на C#, а на Unity создано очень много мобильных и компьютерных игр.
  • Настольные приложения — программы для Windows на WPF и Windows Forms, а с .NET MAUI ещё и мобильные приложения.
  • Облако — сервисы, работающие на облачных платформах, например Microsoft Azure.
  • Консольные программы — небольшие текстовые утилиты. Именно их мы будем писать в этом курсе.

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

По традиции программистов первая программа на новом языке выводит на экран «Hello, world!» («Привет, мир!»). В современном C# для этого хватит одной строки:

C#
Console.WriteLine("Hello, world!");
Ожидаемый результат
Hello, world!
  • Console — готовый класс для работы с консолью (текстовым окном).
  • WriteLine — его метод: он выводит значение в скобках и переходит на новую строку. Точка связывает класс и метод.
  • "Hello, world!" — текст в двойных кавычках, то есть строка (string).
  • ; — точка с запятой: в C# ею заканчивается каждая команда.

Такая запись называется операторами верхнего уровня (top-level statements) и существует с C# 9 (2020 год). В старом коде и книгах ты увидишь ту же программу в более длинной форме — с классом Program и методом Main, с которого начинается выполнение. Короткий вариант компилятор за кулисами превращает именно в такой код.

C#
namespace HelloApp;

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Hello, world!");
    }
}
Ожидаемый результат
Hello, world!
Классическая форма: программа начинается с метода Main.

Как запустить программу?

  1. 1
    Установи .NET SDK

    Скачай бесплатный .NET SDK с официального сайта Microsoft. Для написания кода подойдут Visual Studio, Visual Studio Code с расширением C# Dev Kit или JetBrains Rider.

  2. 2
    Создай проект

    В терминале набери dotnet new console -o HelloApp. В папке HelloApp появится файл Program.cs.

  3. 3
    Запусти

    Перейди в папку командой cd HelloApp и набери dotnet run. Программа скомпилируется, и на экране появится Hello, World!.

  4. 4
    Или всего один файл

    Начиная с .NET 10 можно обойтись без проекта: запиши код в файл app.cs и выполни dotnet run app.cs.

Terminal
dotnet new console -o HelloApp
cd HelloApp
dotnet run
Команды, которые вводятся в терминале

Текст и вычисления

Console.Write выводит текст, не переходя на новую строку, а Console.WriteLine после вывода переводит курсор на следующую строку. Строки можно соединять знаком +. Программа выполняет команды сверху вниз, по очереди.

C#
Console.Write("Salam, ");
Console.Write("Aysel!");
Console.WriteLine();
Console.WriteLine("I live in Baku.");
Console.WriteLine("I am " + 12 + " years old.");
Ожидаемый результат
Salam, Aysel!
I live in Baku.
I am 12 years old.

C# — ещё и хороший калькулятор. Обрати внимание: "2 + 3" в кавычках — просто текст, а 2 + 3 без кавычек вычисляется. При делении двух целых чисел через / результат тоже целый — дробная часть просто отбрасывается. Остаток даёт оператор %.

C#
Console.WriteLine(2 + 3);
Console.WriteLine("2 + 3");
Console.WriteLine(7 * 8);
Console.WriteLine(17 / 5);
Console.WriteLine(17 % 5);
Console.WriteLine("Total: " + (45 + 30));
Ожидаемый результат
5
2 + 3
56
3
2
Total: 75

Комментарии и ошибки

Комментарии компилятор пропускает: они написаны для людей, которые читают код. // превращает в комментарий всё до конца строки, а /* ... */ может охватывать несколько строк.

C#
// This program greets the learner
Console.WriteLine("Welcome to Educora!"); // greeting
/* A comment on
   several lines */
// Console.WriteLine("This line is switched off");
Console.WriteLine("C# is fun!");
Ожидаемый результат
Welcome to Educora!
C# is fun!

Найдя ошибку, компилятор не запускает программу и показывает сообщение с кодом ошибки, например CS1002. В сообщении указаны номер строки и столбца, поэтому ошибку легко найти.

КодОшибкаПричина
Console.WriteLine("Hi")CS1002: ; expectedВ конце строки забыта точка с запятой.
console.WriteLine("Hi");CS0103C# различает регистр: Console пишется с заглавной буквы.
Console.WriteLine('Hi');CS1012Одинарные кавычки — только для одного символа (char), текст пишется в двойных.
Console.WriteLine("Hi);CS1010Забыта закрывающая кавычка.
Ошибки, с которыми новички сталкиваются чаще всего

Главное

  • C# — статически типизированный объектно-ориентированный язык от Microsoft; программы работают на платформе .NET.
  • На C# пишут сайты (ASP.NET Core), игры (Unity), настольные и облачные программы.
  • Console.WriteLine выводит текст и переходит на новую строку, а Console.Write — нет.
  • Каждая команда заканчивается ;, а C# различает регистр букв.
  • Деление двух целых чисел даёт целое: 17 / 5 равно 3, а остаток 17 % 5 равен 2.

Проверь себя

Вопросов: 10. Каждый правильный ответ приносит XP.

1 / 10
На какой платформе работают программы на C#?