
Розширені можливості C#
Pattern matching, records, tuples, deconstruction, local functions, параметри ref/out
1Що таке record у C#?
Що таке record у C#?
Відповідь
record — це незмінний посилальний тип, представлений у C# 9, який надає лаконічний синтаксис для створення типів даних із рівністю на основі значень. На відміну від звичайних класів, що використовують рівність за посиланням, record порівнює значення своїх властивостей. Використовуйте record для DTO, value object та незмінних типів, де бажана рівність на основі значень.
2У чому різниця між out і ref у C#?
У чому різниця між out і ref у C#?
Відповідь
Параметр out не потребує ініціалізації перед викликом методу, але має бути присвоєний усередині методу, тоді як ref потребує ініціалізації перед викликом і може бути змінений або ні всередині методу. Обидва передаються за посиланням, але out оптимізований для повернення кількох значень, тоді як ref використовується для зміни наявної змінної. Використовуйте out для методів, що повертають кілька результатів, і ref, коли потрібна зміна наявного значення.
3Що таке pattern matching у C#?
Що таке pattern matching у C#?
Відповідь
pattern matching — це можливість тестувати значення проти різних шаблонів (типів, значень, властивостей) та виконувати код на основі відповідного шаблону. Представлений у C# 7 та вдосконалений у пізніших версіях, він спрощує складні умовні структури за допомогою switch expression, property pattern і type pattern. Використовуйте pattern matching, щоб замінити складні ланцюжки if-else та покращити читабельність коду.
Що таке tuple у C# і як його оголосити?
Що таке local function у C#?
+17 питань зі співбесід
Інші теми співбесід .NET
Основи C#
LINQ & Delegates
Основи мови C#
Основи ASP.NET Core
Життєвий цикл запиту в ASP.NET Core
Configuration & Settings
Життєвий цикл застосунку
Dependency Injection
Entity Framework Core
Minimal APIs
Розробка Web API
Async в ASP.NET Core
Authentication & Authorization
HttpClient & Networking
Серіалізація JSON
Entity Framework Core просунутий
Clean Architecture
Logging, Monitoring & Observability
Модульне тестування та xUnit
Інтеграційні тести
Docker & Containerization
Керування пакетами NuGet
Memory Management & GC
Реактивне програмування
Async/await і патерни
.NET Design Patterns
Оптимізація продуктивності
Безпека та Best Practices
SignalR і реальний час
Архітектура мікросервісів
Опануй .NET для наступної співбесіди
Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.
Почни безкоштовно