К содержимому
Типичные ошибки C# и как их исправить: страница 4
Строка в перечисление enum в C#Как превратить строку в значение перечисления в C#: Enum.Parse, Enum.TryParse, учёт регистра, числовые строки и безопасная обработка неверных значений.
Возврат Task или async/await в C#Когда метод лучше возвращать как Task, а когда помечать async/await: разница в поведении, накладные расходы и обработка исключений.
GetHashCode и Equals в C#: правила переопределенияЗачем переопределять GetHashCode вместе с Equals в C#: как это влияет на Dictionary и HashSet и как правильно написать оба метода.
System.Type и обобщённые типы в C#Как использовать System.Type с generic-типами в C#: создание обобщённых классов во время выполнения через MakeGenericType и Activator.
Неявная типизация в C#: ключевое слово varКак работает var в C#: неявно типизированные переменные, где их уместно использовать, когда лучше указать тип явно и какие правила стоит соблюдать.
Оператор as и явное приведение типов в C#Как работают оператор as и явное приведение в C#: чем отличаются, когда возвращается null, а когда исключение, и как применять is с шаблонами.
Несколько значений из метода в C#Как вернуть из метода несколько значений в C#: параметры out, кортежи, классы и структуры, с примерами и советами по выбору.
Async/await внутри Parallel.ForEach в C#Почему Parallel.ForEach плохо сочетается с async/await в C# и чем его заменить: Task.WhenAll, SemaphoreSlim и Parallel.ForEachAsync.
Чем отличается i++ от ++i в C#В чём разница между i++ и ++i в C#: когда значение возвращается до увеличения, а когда после, и как это влияет на результат выражения.
Отправка e-mail через Gmail SMTP в C#Как отправить электронное письмо через SMTP-сервер Gmail из C#: настройка SmtpClient, пароль приложения, SSL, вложения и разбор типичных ошибок авторизации.
Доступ к элементам управления между страницами ASP.NETКак работать с элементами управления на разных страницах ASP.NET на C#: ViewState, QueryString, Session, кросс-страничная отправка и пользовательские элементы.
Объект C# в JSON-строку: сериализация в .NETКак преобразовать объект C# в строку JSON: System.Text.Json и Newtonsoft.Json, настройки форматирования, атрибуты и обработка циклических ссылок.
Значение свойства через рефлексию в C#Как получить значение свойства объекта через рефлексию в C#: GetProperty, GetValue, доступ к приватным членам и влияние на производительность.
Классы C# из JSON: генерация и ручное созданиеКак создать классы C# из JSON: Visual Studio, онлайн-генераторы и ручное описание, атрибуты Json.NET и пользовательские конвертеры.
Как получить путь к exe-файлу приложения в C#Как получить путь к исполняемому файлу приложения на C#: Environment, AppDomain, Assembly и Process, чем они отличаются и что выбрать для .NET Core.
Получение свойств объекта в C# через рефлексиюКак получить список свойств объекта в C# через рефлексию: Type.GetProperties, PropertyInfo, фильтрация по атрибутам и модификаторам, с примерами кода.
Как узнать путь к сборке приложения на C#Как получить путь к сборке, в которой выполняется код: Assembly.GetExecutingAssembly, Location, CodeBase и разница между ними для .exe и .dll файлов.
Метод Contains в C# без учёта регистраКак искать подстроку в C# без учёта регистра: ToLower, StringComparison.OrdinalIgnoreCase, метод расширения для String и особенности разных культур.
Почему Thread.Abort в C# лучше не использоватьЧем опасен Thread.Abort в C#: прерывание в случайной точке, повреждённое состояние, проблемы с finally и ресурсами, и безопасные замены на CancellationToken.
Парсинг HTML в C#: выбор библиотеки и примерыКак разобрать HTML в C#: сравнение Html Agility Pack, AngleSharp и CsQuery, выбор элементов через XPath и CSS-селекторы, примеры кода.
Запуск командной строки в C# и чтение выводаКак запустить команду cmd из C# и получить её вывод: класс Process, перенаправление STDOUT и STDERR, ожидание завершения.
Генерация случайных чисел в C#Как получить случайное число в C#: Next и диапазон, Random.Shared, seed, уникальные числа, потоки и безопасная генерация для паролей.
Значимые и ссылочные типы в C#: в чём разницаЧем отличаются значимые и ссылочные типы в C#: хранение в стеке и куче, копирование, передача в методы, боксинг, с примерами кода и таблицей отличий.
Как получить имя свойства из лямбды в C#Как получить имя свойства из лямбда-выражения в C#: Expression<Func<T>>, MemberExpression, оператор nameof и примеры универсального метода.
Как разделить список на подсписки в C# через LINQКак разбить List на части одинакового размера в C# средствами LINQ: Skip и Take, GroupBy, метод Chunk и пример собственного расширения.
Как читать и разбирать XML-файлы в C#Как прочитать и разобрать XML в C#: XDocument и LINQ to XML, XmlDocument с XPath, потоковый XmlReader, десериализация, пространства имён и типичные ошибки.
Функция как параметр метода в C#: делегаты и лямбдыКак передать метод в другой метод на C#: делегаты, встроенные Func и Action, лямбда-выражения, с примерами кода и типичными сценариями применения.
Чем плох lock(this) в C# и чем его заменитьЧем опасен lock(this) в C#: внешний доступ к блокировке, взаимные блокировки и падение производительности, и как заменить его закрытым объектом.
Generic-метод через Type в C#Как вызвать generic-метод в C#, если тип известен только во время выполнения: MakeGenericMethod, Invoke, готовые примеры кода и частые ошибки.
Исключения IndexOutOfRange и ArgumentOutOfRange в C#Чем различаются IndexOutOfRangeException и ArgumentOutOfRangeException в C#, из-за чего возникают, как их предотвратить проверками и обработать через try-catch.