и посмотреть медиа
C# - вопросы собесов
и посмотреть медиа
Собесы C#.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Вопросы для собеседований по C#.
🤔 Как сейчас делается Singleton? В современном C# паттерн Singleton можно реализовать несколькими способами, каждый из которых имеет свои преимущества и предназначен для различных сценариев использования. Рассмотрим несколько распространенных подходов к реализации Singleton. 🟠Ленивый Singleton (Lazy Initialization) Ленивый Singleton инициализируется при первом обращении. Это обеспечивает отложенную инициализацию объекта и гарантирует потокобезопасность. public class Singleton { private static readonly Lazy lazyInstance = new Lazy(() => new Singleton()); public static Singleton Instance => lazyInstance.Value; private Singleton() { // Приватный конструктор } } 🟠Потокобезопасный Singleton (Thread-safe) Этот подход использует lock для обеспечения потокобезопасности при создании экземпляра. public class Singleton { private static Singleton instance; private static readonly object lockObj = new object(); private Singleton() { // Приватный конструктор } public static Singleton Instance { get { if (instance == null) { lock (lockObj) { if (instance == null) { instance = new Singleton(); } } } return instance; } } } Eager Initialization (Инициализация при загрузке) Экземпляр Singleton создается при загрузке класса. Это гарантирует потокобезопасность за счет особенностей инициализации статических переменных в .NET. public class Singleton { private static readonly Singleton instance = new Singleton(); public static Singleton Instance => instance; private Singleton() { // Приватный конструктор } } 🟠Static Constructor (Статический конструктор) Использование статического конструктора для инициализации Singleton. public class Singleton { private static readonly Singleton instance; static Singleton() { instance = new Singleton(); } public static Singleton Instance => instance; private Singleton() { // Приватный конструктор } } Singleton с внедрением зависимостей (Dependency Injection) В современных приложениях, особенно с использованием ASP.NET Core, Singleton часто регистрируется в контейнере внедрения зависимостей. public class SingletonService { public void DoWork() { // Выполнение работы } } // Регистрация в контейнере служб public void ConfigureServices(IServiceCollection services) { services.AddSingleton(); } // Использование в контроллере public class MyController : ControllerBase { private readonly SingletonService _singletonService; public MyController(SingletonService singletonService) { _singletonService = singletonService; } public IActionResult Index() { _singletonService.DoWork(); return Ok(); } } Ставь 👍 и забирай 📚 Базу знаний
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!
Официальный канал Blockchain USA по Binance: сигналы, новости и торговля криптовалютой.
Канал с предложениями Mac оптом и в розницу. Актуальное наличие Apple техники и информация о поставках.
Канал с советами по тех трюкам, соцсетям, Android и iOS, видеоуроками по редактированию и многим другим темам.