Стандартная библиотека C# (.NET): полный обзор
Стандартная библиотека .NET (Base Class Library, BCL) — это фундаментальная основа для разработки на C#. Она предоставляет тысячи готовых классов, интерфейсов, структур и перечислений, которые покрывают практически все аспекты программирования: от работы с числами и строками до сетевого взаимодействия и доступа к базам данных. В этом обзоре мы рассмотрим ключевые пространства имен и их возможности.
Пространство имен System: основа основ
Пространство имен System содержит базовые типы данных, используемые во всех C#-приложениях. Сюда входят:
- Примитивные типы:
Boolean,Byte,Int32,Double,Char,Stringи другие. Каждый из них имеет методы для преобразования, сравнения и форматирования. - Класс
Math: предоставляет константы (π, e) и статические методы для тригонометрических, логарифмических и статистических вычислений. - Класс
Convert: позволяет безопасно преобразовывать типы данных (например, строку в число). - Класс
Console: управляет вводом-выводом в консольном приложении.
using System;
int a = 42;
double b = Math.Sqrt(a);
string text = Convert.ToString(a);
Console.WriteLine($"Квадратный корень из {text} равен {b}");
System.Collections и System.Collections.Generic: работа с коллекциями
Эти пространства имен содержат классы для хранения и управления группами объектов. Современные приложения должны использовать обобщенные (generic) версии из System.Collections.Generic, так как они обеспечивают типобезопасность и более высокую производительность.
List<T>— динамический массив.Dictionary<TKey, TValue>— коллекция «ключ-значение».Queue<T>иStack<T>— реализация очереди и стека.HashSet<T>— множество уникальных элементов.
using System.Collections.Generic;
var numbers = new List<int> { 1, 2, 3, 4, 5 };
numbers.Add(6);
numbers.Remove(3);
var map = new Dictionary<string, int>
{
{ "один", 1 },
{ "два", 2 }
};
if (map.ContainsKey("один"))
Console.WriteLine(map["один"]);
System.Linq: язык интегрированных запросов
LINQ (Language Integrated Query) позволяет выполнять запросы к коллекциям, базам данных, XML и другим источникам данных с помощью единого синтаксиса. Основные методы расширения определены в пространстве имен System.Linq:
Where— фильтрация.Select— проекция.OrderBy/ThenBy— сортировка.GroupBy— группировка.Aggregate,Sum,Count— агрегатные операции.
using System.Linq;
int[] scores = { 85, 92, 78, 95, 88 };
var highScores = scores
.Where(s => s >= 90)
.OrderByDescending(s => s)
.Select(s => $"Оценка: {s}");
foreach (var item in highScores)
Console.WriteLine(item);
System.IO: работа с файловой системой и потоками
Пространство имен System.IO предоставляет классы для чтения/записи файлов, работы с директориями и управления потоками данных. Основные классы:
FileиFileInfo— статические и экземплярные методы для работы с файлами.DirectoryиDirectoryInfo— управление папками.StreamReader/StreamWriter— чтение и запись текстовых файлов.FileStream— работа с файлами как с байтовыми потоками.
using System.IO;
string path = "example.txt";
File.WriteAllText(path, "Привет, .NET!");
string content = File.ReadAllText(path);
Console.WriteLine($"Содержимое файла: {content}");
// Чтение построчно
using (var reader = new StreamReader(path))
{
string line;
while ((line = reader.ReadLine()) != null)
Console.WriteLine(line);
}
System.Threading и System.Threading.Tasks: многопоточность и асинхронность
Сов