# Funzionalità avanzate di C# (.NET) > Pattern matching, records, tuples, deconstruction, local functions, parametri ref/out - 20 domande da colloquio - Mid-Level - [Domande da colloquio: .NET](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio.md) ## 1. Che cos'è un record in C#? **Risposta** Un record è un tipo riferimento immutabile introdotto in C# 9 che fornisce una sintassi concisa per creare tipi di dati con uguaglianza basata sul valore. A differenza delle classi normali che usano l'uguaglianza per riferimento, i record confrontano i valori delle loro proprietà. Usa i record per DTO, value object e tipi immutabili dove è desiderabile l'uguaglianza basata sul valore. ## 2. Qual è la differenza tra out e ref in C#? **Risposta** Il parametro out non richiede l'inizializzazione prima della chiamata al metodo ma deve essere assegnato nel metodo, mentre ref richiede l'inizializzazione prima della chiamata e può essere modificato o meno nel metodo. Entrambi passano per riferimento ma out è ottimizzato per restituire più valori mentre ref è usato per modificare una variabile esistente. Usa out per metodi che restituiscono più risultati e ref quando è necessaria la modifica di un valore esistente. ## 3. Che cos'è il pattern matching in C#? **Risposta** Il pattern matching è una funzionalità che consente di testare un valore rispetto a diversi pattern (tipi, valori, proprietà) ed eseguire codice in base al pattern corrispondente. Introdotto in C# 7 e migliorato nelle versioni successive, semplifica le strutture condizionali complesse con switch expression, property pattern e type pattern. Usa il pattern matching per sostituire catene if-else complesse e migliorare la leggibilità del codice. ## Altre 17 domande disponibili - Che cos'è un tuple in C# e come si dichiara? - Che cos'è una local function in C#? Registrati gratis: https://sharpskill.dev/it/login ## Altri argomenti di colloquio .NET - [Fondamenti di C#](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-basics.md): 25 domande, Junior - [LINQ & Delegates](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-linq-delegates.md): 20 domande, Junior - [Fondamenti del linguaggio C#](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-language-essentials.md): 15 domande, Junior - [Fondamenti di ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/aspnet-core-fundamentals.md): 18 domande, Junior - [Ciclo di vita delle richieste in ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/aspnet-core-request-lifecycle.md): 20 domande, Junior - [Configuration & Settings](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/configuration-settings.md): 20 domande, Junior - [Ciclo di vita dell'applicazione](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/application-lifecycle.md): 20 domande, Junior - [Dependency Injection](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/dependency-injection.md): 24 domande, Mid-Level - [Entity Framework Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/entity-framework-core.md): 25 domande, Mid-Level - [Minimal APIs](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/minimal-apis.md): 18 domande, Mid-Level - [Sviluppo di Web API](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/web-api-development.md): 22 domande, Mid-Level - [Async in ASP.NET Core](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/async-aspnet-core.md): 20 domande, Mid-Level - [Authentication & Authorization](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/authentication-authorization.md): 18 domande, Mid-Level - [HttpClient & Networking](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/httpclient-networking.md): 20 domande, Mid-Level - [Serializzazione JSON](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/json-serialization.md): 20 domande, Mid-Level - [Entity Framework Core avanzato](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/ef-core-advanced.md): 25 domande, Mid-Level - [Clean Architecture](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/clean-architecture.md): 20 domande, Mid-Level - [Logging, Monitoring & Observability](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/logging-monitoring.md): 22 domande, Mid-Level - [Test unitari & xUnit](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/unit-testing-xunit.md): 20 domande, Mid-Level - [Test di integrazione](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/integration-testing.md): 18 domande, Mid-Level - [Docker & Containerization](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/docker-containerization.md): 16 domande, Mid-Level - [Gestione dei pacchetti NuGet](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/nuget-package-management.md): 16 domande, Mid-Level - [Memory Management & GC](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/memory-management-gc.md): 22 domande, Senior - [Programmazione reattiva](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/reactive-programming.md): 24 domande, Senior - [Async/await & Pattern](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/async-await-patterns.md): 26 domande, Senior - [.NET Design Patterns](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/dotnet-design-patterns.md): 24 domande, Senior - [Ottimizzazione delle prestazioni](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/performance-optimization.md): 22 domande, Senior - [Sicurezza e Best Practices](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/security-best-practices.md): 24 domande, Senior - [SignalR e tempo reale](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/signalr-realtime.md): 22 domande, Senior - [Architettura a Microservizi](https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/microservices-architecture.md): 25 domande, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/it/technologies/dotnet/domande-colloquio/csharp-advanced-features