C# (произносится как «си-шарп») — это объектно-ориентированный язык программирования, разработанный корпорацией Microsoft в рамках платформы .NET. Он сочетает в себе синтаксис, похожий на C++ и Java, с глубокими интеграциями в экосистему Windows.
Начните изучать C# прямо сейчас
Бесплатный курс по C# уже ждёт вас!
Кратко о C#:
В C# все строится вокруг классов и объектов. Код структурируется так, как устроены реальные вещи: со свойствами (характеристиками) и методами (действиями). Разберем основные составляющие языка.
Например, нам нужен шаблон фильма: у него есть «название» (Title) и флаг «18+» (IsAdult).
Создаем класс (шаблон, по которому создаются объекты — фильмы):
class Movie
{
public string Title;
public bool IsAdult;
}
Прописываем класс User
(здесь метод CanWatch
проверяет, может ли конкретный пользователь Name
смотреть конкретный фильм Title
):
class User
{
public string Name;
public int Age;
public bool CanWatch(Movie movie)
{
return !movie.IsAdult || Age >= 18;
}
}
Читайте также: С чего начать изучение языка программирования С?
Теперь нужно объявить переменные для имени пользователя, возраста и флага активности:
var user = new User { Name = "Артем", Age = 17 };
var movies = new List<Movie>
{
new Movie { Title = "Сказка", IsAdult = false },
new Movie { Title = "Триллер 18+", IsAdult = true }
};
foreach (var movie in movies)
{
if (user.CanWatch(movie))
{
Console.WriteLine($"{user.Name} может смотреть: {movie.Title}");
}
else
{
Console.WriteLine($"{user.Name} не может смотреть: {movie.Title}");
}
}
Для наглядности рассмотрим на примере. Вы заходите в онлайн-кинотеатр, и перед вами карточка фильма:
При клике на фильм программа просканирует профиль пользователя:
Затем программа запустит метод: «Может ли Артем смотреть этот фильм?» Метод сделает простую проверку:
И вернется с ответом.
В примере выше с онлайн-кинотеатром отлично подошла бы связка ASP.NET Core + Razor Pages или MVC. Такая архитектура подходит, чтобы написать полноценное веб-приложение, в котором пользователь вводил бы свой возраст, а система проверяла бы доступ и показывала только те фильмы, которые ему разрешены.
Эта небольшая шпаргалка, которая поможет сориентироваться в популярных фреймворках C# и понять, какой лучше выбрать под конкретную задачу.
Хочу сделать... | Что выбрать | Почему |
---|---|---|
Веб-сайт или веб-приложение | ASP.NET Core + Razor Pages | Просто, современно, чистый C# |
Сложный веб-проект с разделением логики и данных | ASP.NET Core + MVC | Четкая структура, легко масштабировать |
Интерфейс как в обычных приложениях под Windows | WPF или WinForms | Четкая структура, легко масштабировать |
Мобильное приложение (iOS/Android) | MAUI или Xamarin | Один код на C# — работает везде |
Онлайн-чат | SignalR | Поддерживает живое общение без перезагрузки |
Игру или 3D-проект | Unity | Самый популярный игровой движок на C#. На нем написаны Call of Duty: Heroes, Gone Home, Fallout Shelter |
Искусственный интеллект, рекомендации | ML.NET | Машинное обучение прямо в C# |
Модное веб-приложение без JavaScript | Blazor | C# в браузере, работает как SPA-приложение (которое не нужно каждый раз перезагружать, например, так работает YouTube, Gmail) |
Читайте также: Что такое язык программирования C++
Подойдет, если... | Не подойдет, если... |
---|---|
Собираетесь работать с технологиями Microsoft и .NET | Хотите просто попробовать кодинг без лишних установок |
Планируете разрабатывать сложные бизнес-приложения | Не любите строгость в синтаксисе и типах |
Интересуетесь созданием веб-сайтов, десктопов или API | Ищете язык с минимальным порогом входа |
Мечтаете делать игры на Unity | Не хотите работать в Visual Studio или с проектной структурой |
Любите четкие правила и предсказуемость в коде | Хотите быстро написать скрипт и забыть |
Если вдруг вам показалось, что C# не для вас, — не спешите с выводами. Иногда просто нужно начать с другого языка.
Так сделала Даша — студентка нашей школы. В институте она столкнулась с конструкциями вроде #include
, строгими правилами, странным синтаксисом… Ничего не поняла и решила, что к программированию просто не способна. Семь лет она с этим вполне спокойно жила.
А потом решила вернуться — только уже на своих условиях. Выбрала Python, и вдруг стало получаться. Стало интересно. Появилась цель, появились первые проекты. Теперь она пишет бэкенд и делится своей историей, чтобы поддержать других. Вот что из этого вышло.
Учите C# легко и бесплатно
Попробуйте наш бесплатный курс C#!
На C# пишут веб-приложения, игры, мобильные приложения, десктопные программы и многое другое. Тем не менее на нем сложно, а иногда и вовсе невозможно делать некоторые решения. Вот список того, что не очень удобно или вообще нельзя реализовать на C# напрямую — чтобы вы понимали границы языка программирования и знали, для каких задач он точно не подходит.
На C# нельзя написать интерфейс для сайта, как это делают на JavaScript.
Исключение: Blazor (но в основе все равно WebAssembly и JavaScript).
На C# нельзя писать драйверы, прошивки, работу с «железом» и ядром. Для этого есть C, C++, Rust.
C# не подходит, если нужно переименовать 1000 файлов, спарсить сайт, обработать текст. Для этого лучше взять Python или bash — они сделают это быстрее. Потому что в C# нужно сначала сделать проект, выполнить компиляцию, сделать сборку…
Пример: нужно быстро переименовать 200 файлов в папке или спарсить цены с сайта.
В Python это одна строка:
import os; [os.rename(f, f"new_{f}") for f in os.listdir()]
А в C# нужно:
System.IO
.Main()
.C# не предназначен для прошивки микроконтроллеров, Arduino, STM32 и подобных устройств. Там помогут C/C++ или специализированные языки, например Verilog / VHDL или Matlab.
C# не лучший выбор, если нужно просто написать скрипт в один файл без сборки. Язык заточен под архитектуру, классы, строгость.
В C# есть сборщик мусора (встроенный механизм, который автоматически удаляет из памяти все, что больше не используется). Но вы не управляете этим процессом напрямую. Сборка мусора может включиться в неподходящий момент (например, когда все фризит). Поэтому если нужно управлять памятью вручную, то C++ для этого подходит больше.
Также интересно: Как выучить PHP: руководство для начинающих
Ниже — простой чек-лист, с чего начать обучение C# и как выстраивать процесс, если вы новичок.
int
, string
, bool
, var
.Console.ReadLine()
, Console.WriteLine()
.if
, else
.for
, while
, foreach
.return
.public
, private
).Бесплатный курс по основам C# для начинающих
Старт курса по C# на нашей платформе!
Как используется язык программирования Haskell: компиляторы, тестирование, веб-фреймворки и другое. Примеры и особенности.
Платформа .NET от Microsoft для создания веб-приложений, игр, облачных решений и IoT. Преимущества, поддерживаемые языки программирования, примеры использования.