Перейти к основному содержимому

О разделе

Длинные листинги (от ~15 строк) вынесены в каталог code.spirzen.ru и подгружаются в статьях через ExternalCodeEmbed — так HTML энциклопедии не раздувается, а код остаётся с подсветкой, вкладками и сериями "шаг 1…N". Короткие фрагменты (одна строка, пара выражений) по-прежнему прямо в markdown. Диаграммы mermaid и интерактив — на месте или в play.spirzen.ru.

Раздел посвящён языку C# и экосистеме .NET. Материалы рассчитаны на разработчиков и архитекторов — от первого проекта до углублённых тем (LINQ, async, ООП, веб, производительность). Массовая загрузка и bulk (отличие от "LINQ в цикле + SaveChanges") — Пакетная работа с данными; LINQ к БД — LINQ - язык интегрированных запросов.

Сначала: Что такое код и как он работает — общая база — код, блок кода, компиляция и интерпретация, исходный, байт- и машинный код; в этом разделе — синтаксис и особенности языка.

Потоки, Task и async в .NET

Теория — процессы и потоки, мьютексы и гонки.

В C# — async/await, Task, пул потоков CLR; см. статьи раздела про параллелизм и асинхронность после основ синтаксиса.

В вводной статье по C# и материалах про .NET цепочка "исходник → IL → CLR" по возможности показана псевдокодом до синтаксиса C#.


Маршруты обучения


С чего начать

  1. C# — язык платформы .NET — проекты, сборки, using, консоль. 1a. Visual Studio — IDE для разработки на C# — установка, интерфейс, возможности IDE (рекомендуется перед первой программой). 1b. Main и top-level statements — точка входаProgram.cs, exe vs library.
  2. Синтаксис и пунктуация, переменные, типы и приведения.
  3. Пространства имён, nullable. Исключения: теорияОбработка исключений в C#, Иерархия классов исключений в C#.
  4. ООП в C#, коллекции и кортежи, LINQ (справочник операторов).
  5. Данные: EF Core — первая программа или ADO.NET / Dapper, обзор — БД и ORM. СУБД — SQL Server, PostgreSQL, SQLite, MySQL.

Общие принципы (код, ООП, выполнение) — в Код и разработка. Перед ООП в C#: парадигмы и ООП — о разделе. Здесь — особенности C# и .NET.


C# для Unity

Unity-скрипты — это обычный C# плюс API движка (UnityEngine). Если вы учите язык ради игр, не обязательно проходить весь раздел до ASP.NET — достаточно ветки ниже параллельно с Разработка на Unity. Готовые MonoBehaviour с разбором строк — Unity C# — скрипты для новичков.

Тема в UnityСтатья C#Комментарий
Переменные, типы, if/forПеременные и их области видимости, Преобразование типов и система типизации, Типы данных в C# (в т.ч. boxing и int?)Основа до MonoBehaviour
Классы, наследование, GetComponentОбъектно-ориентированное программирование в C# — блок UnityMonoBehaviour, композиция
List, Dictionary, Stack, HashSetКоллекции и структуры данных в C#Инвентарь, пулы, лут
enum, свойства get/setОбъектно-ориентированное программирование в C#, Типы данных в C#Состояние игрока, KeyCode
static, утилиты без сценыОбъектно-ориентированное программирование в C#LevelRestart, хелперы
Делегаты, eventРекомендации по разработке на C#UI ↔ GameManager
GenericsОбобщения (generics)Обобщённые коллекции и API

Полный маршрут "Unity + C#" шаг за шагом — в intro раздела "Разработка игр". Самопроверка — чек-лист 9.04/999.

Unity и .NET

В редакторе Unity используется профиль .NET, совместимый с игровым рантаймом (IL2CPP / Mono). Веб- и desktop-статьи этого раздела (ASP.NET, WPF) для первого игрового прототипа можно отложить.


Сравнение с Java

Приходите с Java или выбираете между двумя стеками — Сравнение C# и Java: среда выполнения CLR и JVM, синтаксис, async и virtual threads, ASP.NET Core и Spring, игры, Big Data, производительность и рынок (2026). Краткий FAQ — в итогах раздела.


История и эволюция

Файл Синтаксис и пунктуация в C# в этом разделе — синтаксис и пунктуация, не хронология.


Справочник и углубление


Десктоп на .NET

Общая теория окон, элементов и UI-потока — Архитектура десктопных приложений, Особенности разработки, раздел "Десктопные приложения".

СтекТеория / практикаЭлементы UIПримеры в Lab
WinFormsWindows Forms (WinForms)Справочник по WinForms — элементы UIC# WinForms и WPF — простые окна
WPFПервая форма WPF — XAML, стили и шаблоныСправочник по WPF — элементы UIC# WinForms и WPF — простые окна
Windows-платформаРазработка приложений для Windows (Microsoft Learn)
UI-фреймворки .NETТипы приложений на платформе .NET
КроссплатформаMAUI — первая программамобильный раздел

Галерея для лабораторной и курсовойC# WinForms и WPF — простые окна: полный Program.cs, кнопка, TextBox, MessageBox, конвертер температуры, to-do с построчным разбором (аналог Tkinter в Lab для Python).

Веб на .NET


Внешние источники

Актуальные примеры в разделе ориентированы на .NET 8+ и современный C# (nullable reference types, records, top-level statements). Упоминания Xamarin, Web Forms, LINQ to SQL — в контексте сопровождения legacy.


Зачем этот раздел

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


С чего начать

ШагМатериалЗачем
1Visual Studio · Первая программаIDE, затем запуск и синтаксис
2ASP.NET CoreУглубление
3MAUIУглубление

Частые ошибки при старте

ОшибкаЧто делать
Прыжки между языкамиЗакройте одну "первую программу", потом сравнивайте
Код без запускаВыполните пример локально
Сразу большой фреймворкСначала база раздела, потом REST/UI

Что попробовать

  1. Шаг 1 из таблицы.
  2. Три непонятных термина — найдите статьи в оглавлении раздела.
  3. Другой язык — только после своей рабочей первой программы.


Основа по протоколу

Базовый разбор HTTP и HTTPS находится в отдельной статье — HTTP как основа веб-интеграций.


В подборках

Статья входит в тематические подборки и блок "С чего начать?" на главной. Соседние шаги того же маршрута:

Веб-разработкаASP.NET - веб-платформа Microsoft, Веб-разработка и API на C#, PHP — о разделе, ASP.NET - фреймворк для веб-приложений, CSS — о разделе, Документация и практика ASP.NET (Microsoft Learn).

Бэкенд и серверная разработкаПлатформа .NET — о разделе, C++ — о разделе, Java — о разделе, PHP — о разделе, Python — о разделе, Smalltalk — о разделе.