5.05. Служебные классы
Служебные классы
Что такое служебный класс
Environment: переменные среды, путь
Process: запуск процессов
AppContext: глобальные настройки
Environment
| Метод | Описание | Пример |
|---|---|---|
Environment.OSVersion | Получает информацию о версии операционной системы | Console.WriteLine(Environment.OSVersion); |
Environment.MachineName | Возвращает имя компьютера, на котором выполняется приложение | Console.WriteLine(Environment.MachineName); |
Environment.UserName | Возвращает имя текущего пользователя Windows | Console.WriteLine(Environment.UserName); |
Environment.Version | Возвращает версию .NET CLR (Common Language Runtime) | Console.WriteLine(Environment.Version); |
Environment.CurrentDirectory | Возвращает или устанавливает текущую рабочую директорию процесса | Console.WriteLine(Environment.CurrentDirectory); |
Environment.GetEnvironmentVariable("PATH") | Получает значение указанной переменной среды | var path = Environment.GetEnvironmentVariable("PATH"); |
Environment.SetEnvironmentVariable("VAR", "value") | Устанавливает значение переменной среды в текущем процессе | Environment.SetEnvironmentVariable("MY_VAR", "test"); |
File
| Метод | Описание | Пример |
|---|---|---|
File.Exists("file.txt") | Проверяет, существует ли файл по указанному пути | if (File.Exists("data.txt")) |
File.ReadAllText("file.txt") | Считывает весь текст из файла в строку | string content = File.ReadAllText("data.txt"); |
File.WriteAllText("file.txt", "text") | Записывает текст в файл, перезаписывая содержимое | File.WriteAllText("log.txt", "Log message"); |
File.ReadAllLines("file.txt") | Считывает все строки из файла в массив строк | string[] lines = File.ReadAllLines("data.txt"); |
File.WriteAllLines("file.txt", lines) | Записывает массив строк в файл (каждая строка — отдельная строка файла) | File.WriteAllLines("output.txt", lines); |
File.Copy("src", "dest") | Копирует файл из одного пути в другой | File.Copy("source.txt", "backup.txt"); |
File.Delete("file.txt") | Удаляет файл по указанному пути | File.Delete("temp.txt"); |
File.GetAttributes("file.txt") | Возвращает атрибуты файла (например, Hidden, ReadOnly) | var attr = File.GetAttributes("file.txt"); |
File.SetAttributes("file.txt", FileAttributes.Hidden) | Устанавливает атрибуты файла | File.SetAttributes("secret.txt", FileAttributes.Hidden); |
Set & Mapping
| Тип / Метод | Описание | Пример |
|---|---|---|
HashSet<T> | Коллекция уникальных элементов без дубликатов и без гарантии порядка | HashSet<int> numbers = new HashSet<int>(); |
Dictionary<TKey, TValue> | Хранит пары «ключ-значение», обеспечивает быстрый доступ по ключу | Dictionary<string, int> ages = new Dictionary<string, int>(); |
dict.ContainsKey(key) | Проверяет, существует ли указанный ключ в словаре | ages.ContainsKey("Alice") |
dict.TryGetValue(key, out value) | Безопасно пытается получить значение по ключу; возвращает false, если ключ не найден | ages.TryGetValue("Bob", out int age) |
set.Add(value) | Добавляет элемент в множество, если его ещё нет | numbers.Add(10); |
set.Contains(value) | Проверяет, содержится ли элемент в множестве | numbers.Contains(10) |
dict[key] = value | Устанавливает или обновляет значение по указанному ключу | ages["Alice"] = 25; |
Специальные методы класса
| Метод | Описание | Пример |
|---|---|---|
public MyClass() | Конструктор класса — вызывается при создании экземпляра | MyClass obj = new MyClass(); |
~MyClass() | Деструктор (finalizer) — вызывается перед сборкой мусора | ~MyClass() { /* очистка */ } |
ToString() | Возвращает строковое представление объекта | override public string ToString() => $"Name: {Name}"; |
Equals(obj) | Проверяет равенство текущего объекта с другим | obj1.Equals(obj2) |
GetHashCode() | Возвращает хэш-код, используется в хэшированных коллекциях | override public int GetHashCode() => Name.GetHashCode(); |
this[int index] | Индексатор — позволяет обращаться к объекту как к массиву | public int this[int index] { get { ... } set { ... } } |
operator +(a, b) | Перегрузка оператора (например, +, -, ==) | public static Point operator +(Point a, Point b) |
ExtensionMethod(this T obj) | Метод расширения — добавляет метод к существующему типу | public static bool IsEmpty(this string s) => string.IsNullOrEmpty(s); |