Media is too big
VIEW IN TELEGRAM
#полезное
👍 Планирование фоновых задач в .NET с помощью Quartz
Видео посвящено настройке и использованию Quartz.NET в .NET для создания фоновых задач. Рассматриваются внедрение зависимостей, конфигурация Quartz, создание и планирование заданий с IJob, настройка ожидания завершения задач, предотвращение одновременного выполнения с DisallowConcurrentExecution и использование IConfigureOptions для управления фоновыми заданиями.
📱 Cмотреть видео
👉 Новости 👉 База вопросов
Видео посвящено настройке и использованию Quartz.NET в .NET для создания фоновых задач. Рассматриваются внедрение зависимостей, конфигурация Quartz, создание и планирование заданий с IJob, настройка ожидания завершения задач, предотвращение одновременного выполнения с DisallowConcurrentExecution и использование IConfigureOptions для управления фоновыми заданиями.
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЛитКод
Задача: 490. The Maze
В лабиринте есть шар, который может перемещаться по пустым пространствам (представленным как 0) и стенам (представленным как 1). Шар может катиться по пустым пространствам вверх, вниз, влево или вправо, но он не остановится до тех пор, пока не наткнется на стену. Когда шар останавливается, он может выбрать следующее направление.
Дан лабиринт размером m x n, начальная позиция шара и место назначения, где start = [startrow, startcol] и destination = [destinationrow, destinationcol]. Верните true, если шар может остановиться в месте назначения, иначе верните false.
Вы можете предположить, что границы лабиринта представляют собой стены. В приведённом ниже примере они не указаны.
Пример:
👨💻 Алгоритм:
1⃣ Инициализация и подготовка данных
Определите количество строк и столбцов в лабиринте (m и n). Создайте 2D массив visit для отслеживания посещённых ячеек. Запустите DFS (глубокий поиск) с начальной позиции.
2⃣ DFS обход
Если текущая ячейка уже посещена, верните false. Если текущая ячейка совпадает с ячейкой назначения, верните true. Отметьте текущую ячейку как посещённую. Переберите все четыре направления движения (вверх, вправо, вниз, влево): продвигайтесь в выбранном направлении до тех пор, пока не столкнётесь со стеной или границей. После остановки вызовите DFS для новой позиции.
3⃣ Результат
Если любой вызов DFS возвращает true, завершите выполнение и верните true. Если ни один путь не приводит к цели, верните false.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 490. The Maze
В лабиринте есть шар, который может перемещаться по пустым пространствам (представленным как 0) и стенам (представленным как 1). Шар может катиться по пустым пространствам вверх, вниз, влево или вправо, но он не остановится до тех пор, пока не наткнется на стену. Когда шар останавливается, он может выбрать следующее направление.
Дан лабиринт размером m x n, начальная позиция шара и место назначения, где start = [startrow, startcol] и destination = [destinationrow, destinationcol]. Верните true, если шар может остановиться в месте назначения, иначе верните false.
Вы можете предположить, что границы лабиринта представляют собой стены. В приведённом ниже примере они не указаны.
Пример:
Input: maze = [[0,0,1,0,0],[0,0,0,0,0],[0,0,0,1,0],[1,1,0,1,1],[0,0,0,0,0]], start = [0,4], destination = [4,4]
Output: true
Explanation: One possible way is : left -> down -> left -> down -> right -> down -> right.
Определите количество строк и столбцов в лабиринте (m и n). Создайте 2D массив visit для отслеживания посещённых ячеек. Запустите DFS (глубокий поиск) с начальной позиции.
Если текущая ячейка уже посещена, верните false. Если текущая ячейка совпадает с ячейкой назначения, верните true. Отметьте текущую ячейку как посещённую. Переберите все четыре направления движения (вверх, вправо, вниз, влево): продвигайтесь в выбранном направлении до тех пор, пока не столкнётесь со стеной или границей. После остановки вызовите DFS для новой позиции.
Если любой вызов DFS возвращает true, завершите выполнение и верните true. Если ни один путь не приводит к цели, верните false.
public class Solution {
public bool HasPath(int[][] maze, int[] start, int[] destination) {
int m = maze.Length, n = maze[0].Length;
bool[,] visit = new bool[m, n];
return Dfs(m, n, maze, start, destination, visit);
}
private bool Dfs(int m, int n, int[][] maze, int[] curr, int[] destination, bool[,] visit) {
if (visit[curr[0], curr[1]]) return false;
if (curr.SequenceEqual(destination)) return true;
visit[curr[0], curr[1]] = true;
int[][] directions = new int[][] { new int[] {-1, 0}, new int[] {1, 0}, new int[] {0, -1}, new int[] {0, 1} };
foreach (var dir in directions) {
int r = curr[0], c = curr[1];
while (r >= 0 && r < m && c >= 0 && c < n && maze[r][c] == 0) {
r += dir[0];
c += dir[1];
}
int[] newCurr = new int[] { r - dir[0], c - dir[1] };
if (Dfs(m, n, maze, newCurr, destination, visit)) return true;
}
return false;
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#статьи
😊 Процесс компиляции в .NET для C#, включая этапы от написания исходного кода до его выполнения.
Описание охватывает компиляцию в Common Intermediate Language (CIL), хранение в сборке, а также Just-In-Time (JIT) компиляцию в Common Language Runtime (CLR). Также упоминается Ahead-Of-Time (AOT) компиляция для оптимизации производительности.
Читать статью
👉 Новости 👉 База вопросов
Описание охватывает компиляцию в Common Intermediate Language (CIL), хранение в сборке, а также Just-In-Time (JIT) компиляцию в Common Language Runtime (CLR). Также упоминается Ahead-Of-Time (AOT) компиляция для оптимизации производительности.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#Собес
🤔 В чем разница между const и readonly в С#?
👉 Новости 👉 Платформа
const задает константу, значение которой невозможно изменить после компиляции, тогда как readonly позволяет задать значение переменной только в момент инициализации или в конструкторе.Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🥺 Паттерн Abstract Factory, Абстрактная фабрика, C#, Unity
Видео объясняет порождающий паттерн проектирования "Абстрактная фабрика", начиная с его определения, ключевых аспектов и UML-схемы. Оно показывает, как этот паттерн помогает создавать семейства объектов (например, юниты, UI-элементы), избегая привязки к конкретным классам. Приводятся практические примеры кода: сначала без фабрик, затем с использованием абстрактной фабрики.
📱 Cмотреть видео
👉 Новости 👉 База вопросов
Видео объясняет порождающий паттерн проектирования "Абстрактная фабрика", начиная с его определения, ключевых аспектов и UML-схемы. Оно показывает, как этот паттерн помогает создавать семейства объектов (например, юниты, UI-элементы), избегая привязки к конкретным классам. Приводятся практические примеры кода: сначала без фабрик, затем с использованием абстрактной фабрики.
Please open Telegram to view this post
VIEW IN TELEGRAM
#статьи
🥺 Как достичь развертывания без простоя с помощью YARP , используя стратегии Blue-Green и Canary
Читать
👉 Новости 👉 База вопросов
Читать
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Работа с документами Office на .NET
Если нужно генерировать, читать или изменять файлы Word, Excel и PowerPoint (форматы .docx, .xlsx, .pptx) без установки Microsoft Office – Open-XML-SDK от Microsoft отлично подойдёт
🟠 Создание и редактирование файлов без COM и Interop
🟠 Извлечение данных из документов (например, текст из Word или ячейки из Excel)
🟠 Высокая производительность при работе с большими файлами
🟠 Поддержка .NET Core и .NET 6+
👉 Новости 👉 База вопросов
Если нужно генерировать, читать или изменять файлы Word, Excel и PowerPoint (форматы .docx, .xlsx, .pptx) без установки Microsoft Office – Open-XML-SDK от Microsoft отлично подойдёт
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 Могут ли быть выполнены несколько блоков catch в одном программном блоке?
В С# можно использовать несколько блоков
только одно исключение. Если исключение соответствует первому блоку
остальные блоки игнорируются.
👉 Новости 👉 Платформа
В С# можно использовать несколько блоков
catch, но каждый блок обрабатываеттолько одно исключение. Если исключение соответствует первому блоку
catch,остальные блоки игнорируются.
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😘 Cancellation Token в C#. Как использовать ресурсы сервера оптимально
Видео объясняет использование CancellationToken в .NET, включая его применение в ASP.NET, обработку исключений при отмене задач, использование в обычных приложениях и работу с ним в синхронных контекстах, помогая управлять отменой операций и предотвращать ошибки.
📱 Cмотреть на ютубе
👉 Новости 👉 База вопросов
Видео объясняет использование CancellationToken в .NET, включая его применение в ASP.NET, обработку исключений при отмене задач, использование в обычных приложениях и работу с ним в синхронных контекстах, помогая управлять отменой операций и предотвращать ошибки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
#полезное
😇 Изменение стандартного вида отладки для класса
Я недавно об этом узнал, но мы можем изменить стандартное отображение отладки для класса C# с помощью атрибута D
Достаточно добавить атрибут [DebuggerDisplay] в класс
Это делает отладку удобнее, сразу показывая ключевую информацию о каждом объекте.
👉 Новости 👉 База вопросов
Я недавно об этом узнал, но мы можем изменить стандартное отображение отладки для класса C# с помощью атрибута D
ebuggerDisplay.Достаточно добавить атрибут [DebuggerDisplay] в класс
Это делает отладку удобнее, сразу показывая ключевую информацию о каждом объекте.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#полезное
😐 Что такое туннели Dev в Visual Studio?
Dev Tunnels в Visual Studio позволяют нам открывать доступ и отлаживать наши локальные API через удаленные URL-адреса.
Ранее, при интеграции со сторонними сервисами, которые использовали вебхуки или обратные вызовы для уведомления наших приложений о произошедших событиях, нам требовался общедоступный URL.
Для многих разработчиков это означало необходимость развертывания в Azure App Service или другом облачном сервисе, чтобы проверить, работают ли методы обработки обратных вызовов.
Теперь в Visual Studio можно создать Dev Tunnel, который создаст удаленный URL, перенаправляющий запросы в запущенный локально экземпляр.
Затем этот URL можно указать в настройках вебхука стороннего сервиса, и при вызове удаленного URL у нас сработают брейкпоинты в локальной среде – что значительно упрощает процесс разработки.
👉 Новости 👉 База вопросов
Dev Tunnels в Visual Studio позволяют нам открывать доступ и отлаживать наши локальные API через удаленные URL-адреса.
Ранее, при интеграции со сторонними сервисами, которые использовали вебхуки или обратные вызовы для уведомления наших приложений о произошедших событиях, нам требовался общедоступный URL.
Для многих разработчиков это означало необходимость развертывания в Azure App Service или другом облачном сервисе, чтобы проверить, работают ли методы обработки обратных вызовов.
Теперь в Visual Studio можно создать Dev Tunnel, который создаст удаленный URL, перенаправляющий запросы в запущенный локально экземпляр.
Затем этот URL можно указать в настройках вебхука стороннего сервиса, и при вызове удаленного URL у нас сработают брейкпоинты в локальной среде – что значительно упрощает процесс разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#Собес
🤔 Что такое зубчатые массивы (Jagged Arrays) ?
Зубчатый массив - это массив массивов, в котором длина каждого вложенного массива может быть разной.
👉 Новости 👉 Платформа
Зубчатый массив - это массив массивов, в котором длина каждого вложенного массива может быть разной.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
#ЛитКод
Задача: 498. Diagonal Traverse
Дан массив m x n матрицы mat, верните массив всех элементов матрицы в диагональном порядке.
Пример:
👨💻 Алгоритм:
1⃣ Инициализация и подготовка
Проверьте, пуста ли матрица. Инициализируйте переменные для хранения размеров матрицы. Создайте массив result для хранения окончательных результатов и временный список intermediate для промежуточных значений диагоналей.
2⃣ Итерация по диагоналям
Внешний цикл для прохождения по всем диагоналям. Головы диагоналей находятся в первой строке и последнем столбце. Внутренний цикл для итерации по элементам каждой диагонали. Индексы элементов диагонали изменяются до выхода за пределы матрицы.
3⃣ Обработка диагоналей
Для каждой диагонали сохраните её элементы в списке intermediate. Переверните элементы диагонали, если её номер чётный. Добавьте элементы диагонали в массив result.
😎 Решение:
👉 Новости 👉 База вопросов
Задача: 498. Diagonal Traverse
Дан массив m x n матрицы mat, верните массив всех элементов матрицы в диагональном порядке.
Пример:
Input: mat = [[1,2,3],[4,5,6],[7,8,9]]
Output: [1,2,4,7,5,3,6,8,9]
Проверьте, пуста ли матрица. Инициализируйте переменные для хранения размеров матрицы. Создайте массив result для хранения окончательных результатов и временный список intermediate для промежуточных значений диагоналей.
Внешний цикл для прохождения по всем диагоналям. Головы диагоналей находятся в первой строке и последнем столбце. Внутренний цикл для итерации по элементам каждой диагонали. Индексы элементов диагонали изменяются до выхода за пределы матрицы.
Для каждой диагонали сохраните её элементы в списке intermediate. Переверните элементы диагонали, если её номер чётный. Добавьте элементы диагонали в массив result.
public class Solution {
public int[] FindDiagonalOrder(int[][] mat) {
if (mat == null || mat.Length == 0) return new int[0];
int N = mat.Length, M = mat[0].Length;
List<int> result = new List<int>();
for (int d = 0; d < N + M - 1; ++d) {
List<int> intermediate = new List<int>();
int r = d < M ? 0 : d - M + 1;
int c = d < M ? d : M - 1;
while (r < N && c >= 0) {
intermediate.Add(mat[r][c]);
r++;
c--;
}
if (d % 2 == 0) {
intermediate.Reverse();
}
result.AddRange(intermediate);
}
return result.ToArray();
}
}Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
🥺 Подключаемся к API REST из браузера. CORS
Автор показывает, как настроить CORS на бэкенде, добавляя политику с разрешёнными источниками, заголовками и методами. Также демонстрируется исправление ошибки, связанной с редиректом с HTTP на HTTPS. В конце видео даются рекомендации по безопасной настройке CORS, ограничивая доступ только для доверенных источников.
📱 Cмотреть источник
👉 Новости 👉 База вопросов
Автор показывает, как настроить CORS на бэкенде, добавляя политику с разрешёнными источниками, заголовками и методами. Также демонстрируется исправление ошибки, связанной с редиректом с HTTP на HTTPS. В конце видео даются рекомендации по безопасной настройке CORS, ограничивая доступ только для доверенных источников.
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем разница между методами System.Array.CopyTo() и System.Array.Clone()?
👉 Новости 👉 Платформа
СоруТо() копирует элементы из одного массива в другой, а Clone() создает новый массив, содержащий все элементы исходного массива.Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 SurrealDB
Это хайповая база данных нового поколения, которая обещает объединить лучшие черты SQL и NoSQL в одном флаконе.
Если раньше для сложных запросов и распределённых хранилищ приходилось мучиться с разными технологиями, то SurrealDB предлагает удобный и гибкий подход:
🟠 Поддержка графовых связей (как у Neo4j)
🟠 SQL-подобный язык запросов (но проще и мощнее)
🟠 Хранение данных в JSON (как у MongoDB)
🟠 WebSocket API для real-time взаимодействия
🟠 Масштабируемость и горизонтальное шардирование
👉 Новости 👉 База вопросов
Это хайповая база данных нового поколения, которая обещает объединить лучшие черты SQL и NoSQL в одном флаконе.
Если раньше для сложных запросов и распределённых хранилищ приходилось мучиться с разными технологиями, то SurrealDB предлагает удобный и гибкий подход:
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#Собес
🤔 В чем разница между операторами is и as в С#?
Оператор
👉 Новости 👉 Платформа
Оператор
is используется для проверки, является ли объект экземпляром определенного типа, возвращая true или false . Оператор as пытается выполнить преобразование объекта к указанному типу и возвращает null , если преобразование НЕВОЗМОЖНО.Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
#видео
😇 Что такое делегаты в С#? Как их можно использовать в Unity?
Видео рассказывает о делегатах в C#, начиная с примера их использования, затем объясняет, что такое delegate, зачем нужно ключевое слово event, и разбирает три стандартных типа делегатов:
1⃣ Action (для методов без возвращаемого значения)
2⃣ Predicate (для методов, возвращающих bool)
3⃣ Func (для методов с возвращаемым значением).
📱 Cмотреть источник
👉 Новости 👉 База вопросов
Видео рассказывает о делегатах в C#, начиная с примера их использования, затем объясняет, что такое delegate, зачем нужно ключевое слово event, и разбирает три стандартных типа делегатов:
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
🤓 Использование
С появлением C# 9 был введен более элегантный способ проверки на null с помощью паттерн-матчинга.
👉 Новости 👉 База вопросов
is null для проверки на null вместо == null в выражениях типа is в C# 9+С появлением C# 9 был введен более элегантный способ проверки на null с помощью паттерн-матчинга.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2