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
Utilizzare WebJobs su Linux con Azure App Service
Gestire progetti .NET + React in .NET Aspire
Gestire gli errori nelle Promise JavaScript con try()
Implementare il throttle in JavaScript
Recuperare gli audit log in Azure DevOps
Integrare modelli AI in un workflow di GitHub
Ospitare n8n su Azure App Service
Disabilitare le run concorrenti di una pipeline di Azure DevOps
.NET Aspire per applicazioni distribuite
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Collegare applicazioni server e client con .NET Aspire
Mischiare codice server side e client side in una query LINQ con Entity Framework
I più letti di oggi
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Le DirectInk API nella Universal Windows Platform
- Gli oggetti CallOut di Expression Blend 4.0
- Inserire le news di Punto Informatico nel proprio sito


