Стандартная библиотека C# (.NET): полный обзор
Стандартная библиотека .NET (Base Class Library, BCL) — это фундаментальный набор классов, интерфейсов и типов значений, входящий в состав платформы .NET. Она предоставляет разработчикам на C# готовые компоненты для решения типовых задач: от работы с коллекциями и файлами до сетевого взаимодействия и асинхронного программирования. В этой статье мы подробно разберём ключевые пространства имён и классы, которые должен знать каждый C#-разработчик.
1. Пространство имён System — база всего
Корневое пространство имён System содержит фундаментальные типы:
- Базовые типы данных:
Object,String,Int32,Double,Booleanи др. - Утилиты:
Console(ввод/вывод),Math(математические функции),Random(генерация случайных чисел). - Обработка ошибок:
Exceptionи его наследники (ArgumentException,NullReferenceExceptionи т.д.).
Пример использования:
using System;
class Program
{
static void Main()
{
Console.WriteLine("Привет, .NET!");
double result = Math.Sqrt(144);
Console.WriteLine($"Квадратный корень из 144: {result}");
}
}
2. System.Collections — работа с коллекциями
Пространство имён для хранения и управления группами объектов. Делится на обобщённые (generic) и необобщённые коллекции.
Основные классы:
List<T>— динамический массив с быстрым доступом по индексу.Dictionary<TKey, TValue>— ассоциативный массив (хеш-таблица).Queue<T>— очередь (FIFO).Stack<T>— стек (LIFO).HashSet<T>— множество уникальных элементов.
Пример:
using System.Collections.Generic;
var numbers = new List<int> { 10, 20, 30 };
numbers.Add(40);
var lookup = new Dictionary<string, int>
{
["один"] = 1,
["два"] = 2
};
Console.WriteLine(lookup["два"]); // 2
3. System.Linq — Language Integrated Query
LINQ позволяет выполнять SQL-подобные запросы к коллекциям, базам данных и XML. Основные методы расширения:
Where()— фильтрация.Select()— проекция.OrderBy()— сортировка.GroupBy()— группировка.Aggregate()— агрегатные функции (Sum, Count, Average).
Пример:
using System.Linq;
int[] scores = { 85, 92, 78, 95, 88 };
var highScores = scores
.Where(s => s >= 90)
.OrderByDescending(s => s)
.ToList();
Console.WriteLine(string.Join(", ", highScores)); // 95, 92
4. System.IO — работа с файлами и потоками
Пространство имён для ввода-вывода данных. Ключевые классы:
File/FileInfo— создание, чтение, запись файлов.Directory/DirectoryInfo— работа с каталогами.StreamReader/StreamWriter— чтение/запись текстовых потоков.FileStream— низкоуровневая работа с файлами.
Пример записи и чтения:
using System.IO;
string path = "example.txt";
File.WriteAllText(path, "Hello, .NET!");
string content = File.ReadAllText(path);
Console.WriteLine(content); // Hello, .NET!
5. System.Threading.Tasks — асинхронное программирование
Современный подход к асинхронности через ключевые слова async и await. Основные классы:
Task/Task<TResult>— асинхронная операция.Task.Run()— запуск задачи в пуле потоков.Task