Вы находитесь на странице: 1из 15

11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .

NET 6

METANIT.COM
Сайт о программировании








Полное руководство по языку программирования С#


10 и платформе .NET 6
Последнее обновление: 15.11.2021




Глава 1. Введение в C#

Язык C# и платформа .NET

Начало работы с Visual Studio. Первая программа

Компиляция в командной строке с .NET CLI

Глава 2. Основы программирования на C#

Структура программы

Переменные и константы

Литералы

Типы данных

Консольный ввод-вывод

Арифметические операции

Поразрядные операции

Операции присваивания

Преобразования базовых типов данных

Условные выражения

Конструкция if..else и тернарная операция

Циклы

Массивы

Задачи с массивами

Методы

https://metanit.com/sharp/tutorial/ 1/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Параметры методов

Возвращение значения и оператор return

Передача параметров по ссылке и значению. Выходные параметры

Массив параметров и ключевое слово params

Рекурсивные функции

Локальные функции

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

Перечисления enum

Глава 3. Классы. Объектно-ориентированное программирование

Классы и объекты

Конструкторы, инициализаторы и деконструкторы

Класс Program и метод Main. Программы верхнего уровня

Структуры

Типы значений и ссылочные типы

Область видимости (контекст) переменных

Пространства имен

Глобальные пространства имен

Подключение пространств имен по умолчанию

Создание библиотеки классов

Модификаторы доступа

Свойства

Перегрузка методов

Статические члены и модификатор static

Поля и структуры для чтения

Перегрузка операторов

Индексаторы

Наследование

Преобразование типов

Перегрузка операций преобразования типов

Виртуальные методы и свойства


https://metanit.com/sharp/tutorial/ 2/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Сокрытие методов

Различие переопределения и сокрытия методов

Абстрактные классы

Класс System.Object и его методы

Обобщенные типы

Ограничения обобщений

Наследование обобщенных типов

Глава 4. Обработка исключений

Конструкция try..catch..finally

Блок catch и фильтры исключений

Типы исключений. Класс Exception

Создание классов исключений

Поиск блока catch при обработке исключений

Генерация исключения и оператор throw

Глава 5. Делегаты, события и лямбды

Делегаты

Применение делегатов

Анонимные методы

Лямбды

События

Ковариантность и контравариантность делегатов

Делегаты Action, Predicate и Func

Глава 6. Интерфейсы

Определение интерфейсов

Применение интерфейсов

Явная реализация интерфейсов

Реализация интерфейсов в базовых и производных классах

Наследование интерфейсов

Интерфейсы в обобщениях

Копирование объектов. Интерфейс ICloneable


https://metanit.com/sharp/tutorial/ 3/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Сортировка объектов. Интерфейс IComparable

Ковариантность и контравариантность обобщенных интерфейсов

Глава 7. Дополнительные возможности ООП в C#

Null и ссылочные типы

Null и значимые типы

Проверка на null, операторы ?. и ??

Переменные-ссылки и возвращение ссылки

Методы расширения

Частичные классы и методы

Анонимные типы

Кортежи

Pattern matching

Records

Глава 8. Объектно-ориентированное программирование. Практика

Создание проекта библиотеки классов

Создание классов. Часть 1

Создание классов. Часть 2

Создание главного проекта

Глава 9. Коллекции

ArrayList

Список List<T>

Двухсвязный список LinkedList<T>

Очередь Queue<T>

Стек Stack<T>

Словарь Dictionary<T, V>

Класс ObservableCollection

Интерфейсы IEnumerable и IEnumerator

Итераторы и оператор yield

Глава 10. Работа со строками

Строки и класс System.String


https://metanit.com/sharp/tutorial/ 4/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Операции со строками

Форматирование и интерполяция строк

Класс StringBuilder

Регулярные выражения

Глава 11. Работа с датами и временем

Структура DateTime

Форматирование дат и времени

Глава 12. Дополнительные классы и структуры .NET

Отложенная инициализация и тип Lazy

Математические вычисления и класс Math

Преобразование типов и класс Convert

Класс Array и массивы

Span

Индексы и диапазоны

Глава 13. Многопоточность

Введение в многопоточность. Класс Thread

Создание потоков. Делегат ThreadStart

Потоки с параметрами и ParameterizedThreadStart

Синхронизация потоков

Мониторы

Класс AutoResetEvent

Мьютексы

Семафоры

Таймеры

Глава 14. Параллельное программирование и библиотека TPL

Задачи и класс Task

Работа с классом Task

Задачи продолжения

Класс Parallel

Отмена задач и параллельных операций. CancellationToken


https://metanit.com/sharp/tutorial/ 5/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Глава 15. Aсинхронное программирование. Task-based Asynchronous Pattern

Асинхронные методы, async и await

Возвращение результата из асинхронного метода

Последовательный и параллельный вызов асинхронных операций

Обработка ошибок в асинхронных методах

Отмена асинхронных операций

Асинхронные стримы

Глава 16. LINQ

Основы LINQ

Фильтрация выборки и проекция

Сортировка

Объединение, пересечение и разность коллекций

Агрегатные операции

Методы Skip и Take

Группировка

Соединение коллекций. Метод Join, GroupJoin и Zip

Методы All и Any

Отложенное и немедленное выполнение LINQ

Делегаты и анонимные методы в запросах LINQ

Глава 17. Parallel LINQ

Введение в Parallel LINQ. Метод AsParallel

Метод AsOrdered

Обработка ошибок и отмена параллельных операции

Глава 18. Рефлексия

Введение в рефлексию. Класс System.Type

Применение рефлексии и исследование типов

Динамическая загрузка сборок и позднее связывание

Атрибуты в .NET

Глава 19. Dynamic Language Runtime

DLR в C#. Ключевое слово dynamic


https://metanit.com/sharp/tutorial/ 6/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

DynamicObject и ExpandoObject

Использование IronPython в .NET

Глава 20. Сборка мусора, управление памятью и указатели

Сборщик мусора в C#

Финализируемые объекты. Метод Dispose

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

Указатели

Указатели на структуры, члены классов и массивы

Глава 21. Работа с потоками и файловой системой

Работа с дисками

Работа с каталогами

Работа с файлами. Классы File и FileInfo

FileStream. Чтение и запись файла

Чтение и запись текстовых файлов. StreamReader и StreamWriter

Бинарные файлы. BinaryWriter и BinaryReader

Бинарная сериализация. BinaryFormatter

Архивация и сжатие файлов

Глава 22. Работа с JSON

Сериализация в JSON. JsonSerializer

Глава 23. Работа с XML в C#

XML-Документы

Работа с XML с помощью классов System.Xml

Изменение XML-документа

XPath

Linq to Xml. Создание Xml-документа

Выборка элементов в LINQ to XML

Изменение XML-документа в LINQ to XML

Сериализация в XML. XmlSerializer

Глава 24. Процессы и домены приложения

Процессы
https://metanit.com/sharp/tutorial/ 7/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Домены приложений

AssemblyLoadContext и динамическая загрузка и выгрузка сборок

Глава 25. Валидация модели

Основы валидации модели

Атрибуты валидации

Создание своих атрибутов валидации

Самовалидация модели

Вопросы для самопроверки

Создание графических приложений с C# в Windows Forms




ALSO ON METANIT.COM

Глобальные
Jetpack Compose пространства имен Jetpack Com
2 месяца назад • 1 comment 13 дней назад • 6 comments месяц назад • 2

Контейнер компоновки Глобальные пространства Радиокнопка R


Row в Jetpack Compose на имен в C# и .NET, файл ее параметры
языке … GlobalUsings.cs, … Compose на я

121 Comments metanit.com 🔒 Политика конфиденциальности


1 Войти

 Favorite 28 t Твитнуть f Поделиться Лучшее

Присоединиться к обсуждению...

ВОЙТИ С ПОМОЩЬЮ
ИЛИ ЧЕРЕЗ DISQUS ?

Имя

https://metanit.com/sharp/tutorial/ 8/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Vyacheslav Michailovich • 5 лет назад • edited


У меня предложение к автору, а можно сделать раздел:
"Вопросы на собеседованиях", с голосовалкой, просто хочется
чтобы в одном месте все было, а то надоело везде искать по
чучуть и реально надо людям! Кто поддерживает идею?

P.S. И я даже могу подбавлять вопросы...и даже бредовые


которые мне задавали)))
38 △ ▽ 1 • Ответить • Поделиться ›

Metanit Модератор > Vyacheslav Michailovich • 5 лет назад

ну если много будет, я могу отдельной статьей


опубликовать
1△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit • 5 лет назад


Думаю стоит какуюто голосовалку сделать и
спросить у народа!
8△ ▽ • Ответить • Поделиться ›

Алексей Трубкин > Vyacheslav Michailovich


• 5 лет назад
Отличная идея!
2△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit • 5 лет назад


Опубликуйте а там посмотрим.
△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Vyacheslav Michailovich


• 5 лет назад
опубликовал в следующем виде
https://metanit.com/sharp/i...
3△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit


• 5 лет назад
If you create this material on example
w3schools, this is very good, for example:

https://www.w3schools.com/a...
△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit


• 5 лет назад
That's good. Will be add new question for
interview.
△ ▽ • Ответить • Поделиться ›

https://metanit.com/sharp/tutorial/ 9/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Metanit Модератор > Vyacheslav Michailovich


• 5 лет назад
так нечего пока публиковать, вы мне
вопросы с собеседований накидайте, я их и
опубликую
1△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit


• 5 лет назад
Я вам на почту скину. уровень - middle,
MVC 5 asp.net
△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Vyacheslav Michailovich


• 5 лет назад
ага кидайте
1△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit


• 5 лет назад • edited
Кинул на почту, жду ответа, по почте. Там
всего лишь 76 вопрсов по C# парочку по
МВЦ и чуток задач, примерно 20.
ПИсьмо - Вопросы на собеседование
△ ▽ • Ответить • Поделиться ›

Vyacheslav Michailovich > Metanit


• 5 лет назад
Хорошо!
△ ▽ • Ответить • Поделиться ›

Less Grossman • 3 года назад


Уважаемый автор !!! Большое спасибо вам , что создали такой
замечательный сайт ! Эти статьи не только помогают , но и
превращают обычных чайников как я в .net профессионалов!
Большой спасибо вам ! Желаю здоровья и процветания ! :))))))
4△ ▽ • Ответить • Поделиться ›

Артём Фролов • 2 года назад


Стоит ли ожидать статьи по Blazor ?
2△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Артём Фролов • 2 года назад


да
6△ ▽ • Ответить • Поделиться ›

Fase Play • 8 месяцев назад

https://metanit.com/sharp/tutorial/ 10/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6
Здравствуйте. Давно пользуюсь вашим сервисом, он мне очень
нравится, но хотелось бы, чтобы уже пройденный материал
обозначался как-то по другому (другой цвет ссылки, например).
Ведь заглядывая в оглавление часто не понимаешь что ты уже
прошёл, а что ещё нет.
1△ ▽ • Ответить • Поделиться ›

Anton Silaev • год назад


Спасибо за сайт в очередной раз, любой вопрос по теории с#
гуглю с припиской metanit) Никогда не подводит! Если когда-
нибудь устроюсь программистом - сразу скину долю с 1й зп)
1△ ▽ • Ответить • Поделиться ›

Mr_Patch_V2098 • 2 года назад • edited


Здравствуйте Админ и комьюнити!

У меня следующий вопрос!

Если я хочу попасть на работу где используют такие технологии


как ASP net core/Net core/Angular/React/TypeScript мне следует
читать такие книги как :

1. Герберт Шилд C# 4.0?

2. Троилсен C# 7.0?

3. CLR Рихтен C#?

Или достаточно для ознакомления с языком C# 8.0 net.core


просто пройтись по Metanit (1)Net core полное руководство,
затем ASP net core, затем Angular/React/TypeScript и остальное
просто гуглить, а с опытом брать более новые и серьезные
книги???
1△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Mr_Patch_V2098 • 2 года назад • edited


здесь есть два момента:

1) на каждом конкретном месте работы требования могут


отличаться, в одном месте небольшие требования, в
другом - требования построже.

2) наличие прочитанных книг в послужном списке не


говорит ровным счетом ничего, даже если содержащася
в них теория более менее усвоена. Вы можете прочитать
хоть все материалы по шарпу, но если вы не создавали
приложения, хотя бы примитивные, хотя бы для себя, то
грош цена этой теории. По этому должно быть как
минимум понмание, что вы можете делать определенный
род задач хотя бы на уровне junior или которые отвечают
требуемой вакансии.
https://metanit.com/sharp/tutorial/ 11/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Касательно непосредственно литературы. Я знаю


примеры, когда после изучения материалов на этом
сайте, в частности, по шарпу, люди устраивались на
работу. В то же время, возможно, кому-то полученных
знаний оказалось недостаточно. Опять же тут надо
смотреть по конкретным вакансиям. Но в целом план
обрисован верно. -Сначала это руководство по C# и .NET
Core, потом работа с базами данных - руководство по
Entity Framework Core, затем в зависимости от того какое
направление выбрано - Web/Desktop/Mobile выбирается
одно из направлений ASP NET
Core/WPF+WinFoms/Xamarin Также если выбран Web, то
предварительно лучше получить знания по JavaScript и
HTML/CSS хотя бы в общем виде, и также если Web, то
далее TypeScript, потом Angular/React/Vue.js

По поводу книг мое имхо Шилдт с 4-й версией несколько


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

Но вне зависимости от того, какие книги, статьи и прочие


выбраны для изучения, вам все равно придется гуглить
различные моменты, потому что область
программирования бездонна, все охватить в принципе
невозможно, плюс все очень быстро развивается, где-то
могут возникать вопросы узкого практического характера
и т.д.
4△ ▽ • Ответить • Поделиться ›

Mr_Patch_V2098 > Metanit • 2 года назад


Я вас понял, спасибо! Просто раньше Гугл не был
тем Гуглом что есть сейчас, вместо книг я могу
гуглить!
1△ ▽ • Ответить • Поделиться ›

Karpenko Y > Metanit • год назад


Положим, выбран курс на Desktop разработку. Вы
не упомянули UWP. На это есть какие-то
неочевидные причины?

Спасибо!
△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Karpenko Y • год назад

опредленных причин нет. Но лично мое


очень субъективное мнение таково, что
UWP не очень популярен. Различные
https://metanit.com/sharp/tutorial/ 12/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

опросы среди разработчиков только это


подтверждает. Поэтому я бы посоветовал
больше смотреть пока в сторону WPF
прежде всего и WinForms. UWP тоже
можно, но наверное только третим по
приоритету. Те не менее тут все зависит от
конкретных целей и задач. Непопулярность
технологии - не повод, чтобы ее
отбрасывать. Есть люди, которые
зарабатывают на приложениях на UWP
довольно большие деньги и, возможно,
ничем другим не занимаются, кому-то
просто нравится эта технология, кто-то
делает проекты чисто для себя. Но,
например, если говорить о том, чтобы
получить знания и найти себе работу, то в
плане UWP это будет сделать сложнее, чем
для WPF. Но я бы рекомендовал
попробовать данную технологию, вообще
пробовать разные технологии, чтобы
понять, что больше нравиться, к чему душа
лежит, но при этом учитывать конкретные
поставленные цели (собственные проекты,
найти работу, найти оптимальную
технологию и т.д.).
2△ ▽ • Ответить • Поделиться ›

Daredevil 3D > Mr_Patch_V2098 • 2 года назад


Здравствуй, как продвигается обучение?
△ ▽ • Ответить • Поделиться ›

KennyKivi • 2 года назад


Когда нажимаешь на строку "Глава 18. Aсинхронное
программирование. Task-based Asynchronous Pattern" - кидает в
предпоследний пункт этой главы ("Асинхронные делегаты"),
немного сбивает с толку.
1△ ▽ • Ответить • Поделиться ›

Андрей • 2 года назад • edited


Уверен, что встречал где-то (play market или microsoft store)
приложение metanit. Предстоит пара недель без интернета,
решил купить. Но не могу найти. Неужели ошибаюсь?
1△ ▽ • Ответить • Поделиться ›

Metanit Модератор > Андрей • 2 года назад

чет все никак не обновлю на новую версию в ms store,


https://metanit.com/sharp/tutorial/ 13/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

старую версию майкрософт не пускает


3△ ▽ • Ответить • Поделиться ›

Eugeny Vlasov > Metanit • 2 года назад


с удовольствием бы купил версию для AppStore
2△ ▽ • Ответить • Поделиться ›

Daredevil 3D > Metanit • 2 года назад


плюсую, тоже бы заплатил за оффлайновую
версию
△ ▽ • Ответить • Поделиться ›

Vlad Myasnikov • 5 лет назад


Thanks so much, Ваш ресурс очень помогает разбиратся в моей
любимой экосистеме .NET.
1△ ▽ • Ответить • Поделиться ›

Evgeniy • 3 года назад


Есть офлайн версия pdf? Ниже ссылки все недоступны
1△ ▽ 1 • Ответить • Поделиться ›

serhiy • 9 дней назад


"Последнее обновление: 10.11.2021" - а сегодня еще 9-е...
△ ▽ • Ответить • Поделиться ›

asari • 15 дней назад


так сегодня же 3.11.2021. как это обновлено 10.11.2021? а для 5
версии останутся статьи?
△ ▽ • Ответить • Поделиться ›

Metanit Модератор > asari • 15 дней назад


потому что планировалось обновит эту статью 10 числа,
Помощь сайту
WebMoney

P378451176208
Z280152397659

ЮMoney/Яндекс-Деньги

410011174743222

PayPal

metanit22@mail.ru

Перевод на карту

Номер карты: 4048415020898850

https://metanit.com/sharp/tutorial/ 14/15
11/18/21, 11:06 PM Учебник по языку С# 10 и платформе .NET 6

Вконтакте |
Twitter |
Канал сайта на youtube |
Помощь сайту

Контакты для связи: metanit22@mail.ru

Copyright © metanit.com, 2012-2021. Все права защищены.

https://metanit.com/sharp/tutorial/ 15/15

Вам также может понравиться