Как правильно задавать таймауты и отмену в async-цепочке без конфликтов?
Держите один источник истины для отмены: передавайте общий CancellationToken вниз по стеку, избегайте вложенных таймаутов. Для HTTP вместо HttpClient.Timeout используйте Polly Timeout или CancellationTokenSource.CancelAfter, везде прокидывайте токен и корректно обрабатывайте OperationCanceledException.
Библиотека собеса по С#
Библиотека собеса по С#
Что такое enum и когда его следует использовать?
Enum — это тип значения, который используется для хранения перечислений, представляющих собой список именованных констант. Enum можно использовать для определения статических констант и константных флагов.
Библиотека собеса по С#
Библиотека собеса по С#
Какова разница между IEnumerable и IQueryable при работе с удаленной базой данных?
IEnumerable представляет собой коллекцию данных, находящуюся в памяти, и позволяет перемещаться по этим данным только в одном направлении — вперед. В отличие от него, IQueryable находится в пространстве имен System.Linq и предоставляет возможность удаленного доступа к базе данных. Он позволяет перемещаться по данным как в прямом, так и в обратном порядке. При выполнении запроса происходит его оптимизация, что делает работу с данными более эффективной.
Библиотека собеса по С#
IEnumerable представляет собой коллекцию данных, находящуюся в памяти, и позволяет перемещаться по этим данным только в одном направлении — вперед. В отличие от него, IQueryable находится в пространстве имен System.Linq и предоставляет возможность удаленного доступа к базе данных. Он позволяет перемещаться по данным как в прямом, так и в обратном порядке. При выполнении запроса происходит его оптимизация, что делает работу с данными более эффективной.
IEnumerable phoneIEnum = db.Phones;var phones1 = phoneIEnum.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES, фильтрация на стороне клиентаIQueryable phoneIQuer = db.Phones;int id = 3;var phones2 = phoneIQuer.Where(p => p.Id > id).ToList(); //SELECT * FROM PHONES WHERE ID > 3Библиотека собеса по С#
Можете ли вы определить разницу между перегрузкой и переопределением?
Перегрузка — когда у вас есть два или более методов в одной области действия с одинаковым именем, но разными параметрами.
Переопределение — позволяет вам изменить поведение метода в подклассе или дочернем классе.
Библиотека собеса по С#
Перегрузка — когда у вас есть два или более методов в одной области действия с одинаковым именем, но разными параметрами.
Переопределение — позволяет вам изменить поведение метода в подклассе или дочернем классе.
Библиотека собеса по С#