# Zaawansowane funkcje C# (.NET) > Pattern matching, records, tuples, deconstruction, local functions, parametry ref/out - 20 pytań z rozmów - Mid-Level - [Pytania z rozmów: .NET](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne.md) ## 1. Czym jest record w C#? **Odpowiedź** record to niezmienny typ referencyjny wprowadzony w C# 9, który zapewnia zwięzłą składnię do tworzenia typów danych z równością opartą na wartościach. W przeciwieństwie do zwykłych klas, które używają równości referencyjnej, record porównuje wartości swoich właściwości. Używaj record dla DTO, value object i typów niezmiennych, gdzie pożądana jest równość oparta na wartościach. ## 2. Jaka jest różnica między out a ref w C#? **Odpowiedź** Parametr out nie wymaga inicjalizacji przed wywołaniem metody, ale musi zostać przypisany w metodzie, podczas gdy ref wymaga inicjalizacji przed wywołaniem i może, ale nie musi być zmodyfikowany w metodzie. Oba przekazują przez referencję, ale out jest zoptymalizowany pod kątem zwracania wielu wartości, podczas gdy ref służy do modyfikacji istniejącej zmiennej. Używaj out dla metod zwracających wiele wyników, a ref gdy potrzebna jest modyfikacja istniejącej wartości. ## 3. Czym jest pattern matching w C#? **Odpowiedź** pattern matching to funkcja umożliwiająca testowanie wartości względem różnych wzorców (typów, wartości, właściwości) i wykonywanie kodu na podstawie dopasowanego wzorca. Wprowadzony w C# 7 i ulepszony w późniejszych wersjach, upraszcza złożone struktury warunkowe za pomocą switch expression, property pattern i type pattern. Używaj pattern matching, aby zastąpić złożone łańcuchy if-else i poprawić czytelność kodu. ## Jeszcze 17 dostępnych pytań - Czym jest tuple w C# i jak go zadeklarować? - Czym jest local function w C#? Zarejestruj się za darmo: https://sharpskill.dev/pl/login ## Inne tematy rekrutacyjne .NET - [Podstawy C#](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-basics.md): 25 pytań, Junior - [LINQ & Delegates](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-linq-delegates.md): 20 pytań, Junior - [Podstawy języka C#](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-language-essentials.md): 15 pytań, Junior - [Podstawy ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/aspnet-core-fundamentals.md): 18 pytań, Junior - [Cykl życia żądania w ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/aspnet-core-request-lifecycle.md): 20 pytań, Junior - [Configuration & Settings](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/configuration-settings.md): 20 pytań, Junior - [Cykl życia aplikacji](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/application-lifecycle.md): 20 pytań, Junior - [Dependency Injection](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/dependency-injection.md): 24 pytań, Mid-Level - [Entity Framework Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/entity-framework-core.md): 25 pytań, Mid-Level - [Minimal APIs](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/minimal-apis.md): 18 pytań, Mid-Level - [Tworzenie Web API](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/web-api-development.md): 22 pytań, Mid-Level - [Async w ASP.NET Core](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/async-aspnet-core.md): 20 pytań, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/authentication-authorization.md): 18 pytań, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/httpclient-networking.md): 20 pytań, Mid-Level - [Serializacja JSON](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/json-serialization.md): 20 pytań, Mid-Level - [Entity Framework Core zaawansowany](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/ef-core-advanced.md): 25 pytań, Mid-Level - [Clean Architecture](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/clean-architecture.md): 20 pytań, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/logging-monitoring.md): 22 pytań, Mid-Level - [Testy jednostkowe & xUnit](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/unit-testing-xunit.md): 20 pytań, Mid-Level - [Testy integracyjne](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/integration-testing.md): 18 pytań, Mid-Level - [Docker & Containerization](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/docker-containerization.md): 16 pytań, Mid-Level - [Zarządzanie pakietami NuGet](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/nuget-package-management.md): 16 pytań, Mid-Level - [Memory Management & GC](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/memory-management-gc.md): 22 pytań, Senior - [Programowanie reaktywne](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/reactive-programming.md): 24 pytań, Senior - [Async/await i wzorce](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/async-await-patterns.md): 26 pytań, Senior - [.NET Design Patterns](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/dotnet-design-patterns.md): 24 pytań, Senior - [Optymalizacja wydajności](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/performance-optimization.md): 22 pytań, Senior - [Bezpieczeństwo i Best Practices](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/security-best-practices.md): 24 pytań, Senior - [SignalR i czas rzeczywisty](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/signalr-realtime.md): 22 pytań, Senior - [Architektura Mikroserwisów](https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/microservices-architecture.md): 25 pytań, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/pl/technologies/dotnet/pytania-rekrutacyjne/csharp-advanced-features