Molto spesso, quando si passano parametri a un costruttore questi vengono utilizzati per inizializzare proprietà magari tramite calcoli o trasformazioni. Ad esempio, se passiamo due coppie x/y ad una classe, questa potrebbe usarle per calcolare la distanza tra i punti, la direzione, l'angolazione e altro ancora. Queste operazioni vengono spesso fatte nel costruttore, ma quando usiamo i primary constructor non abbiamo a disposizione codice quindi dobbiamo chiamare funzioni nell'inizializzatore delle variabili passando in input i parametri del primary constructor.
public class MyClass(double dx, double dy, double sx, double sy) { public readonly double Distance { get; } = CalcDistance(dx, dy, sx, sy); public readonly double Direction { get; } = CalcDirection(dy, dx); public CalcDirection(double dy, double dx) { ... } public CalcDistance(double dx, double dy, double sx, double sy) { ... } }
Grazie a questa funzionalità, il codice è molto più compatto in confronto a quello che si doveva scrivere prima che mettiamo qui sotto come riferimento.
public class MyClass { public readonly double Distance { get; } public readonly double Direction { get; } public Distance(double dx, double dy, double sx, double sy) { Distance = CalcDistance(dx, dy, sx, sy); Direction = CalcDirection(dy, dx); } public CalcDirection(double dy, double dx) { ... } public CalcDistance(double dx, double dy, double sx, double sy) { ... } }
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ridurre il reflow cambiando il CSS
Usare i servizi di Azure OpenAI e ChatGPT in ASP.NET Core con Semantic Kernel
Utilizzare WebJobs su Linux con Azure App Service
Simulare Azure Cosmos DB in locale con Docker
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Ridurre il reflow ottimizzando il CSS
Sfruttare GPT-4o realtime su Azure Open AI per conversazioni vocali
Utilizzare WhenEach per processare i risultati di una lista di task
Sfruttare gli embedding e la ricerca vettoriale con Azure SQL Database
Popolare una classe a partire dal testo, con Semantic Kernel e ASP.NET Core Web API
Anonimizzare i dati sensibili nei log di Azure Front Door
Utilizzare il metodo ExceptBy per eseguire operazione di sottrazione tra liste