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
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Ospitare n8n su Azure App Service
Configurare OpenTelemetry per Application Insights su ASP.NET Core
Impostare automaticamente l'altezza del font tramite CSS
Controllare la velocità di spostamento su una pagina HTML
Impostare la content-visibility in CSS per ottimizare il rendering iniziale di una pagina
Importare un servizio esterno in .NET Aspire
Interagire con Azure DevOps tramite MCP Server
Usare i generics di C# con la clausola nameof in modo semplificato
Gestione delle issue type con GitHub
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Self-healing degli unit test con Copilot in GitHub
I più letti di oggi
- Real Code Day 4.0: costruire applicazioni reali - Firenze
- Community Days 2012 Bari - Bari
- Speciale Windows Azure: la piattaforma di Microsoft per il cloud computing
- Presentato il Windows Store: ecco tutte le novità
- Wrox chiude per bancarotta
- Mono 1.0 nel 2004
- Due regali dal Tech-Ed USA 2004: WSE 2.0 e VS 2005 Team System
- .NET Compact Framework beta
- Rilasciata versione 1.1.17 di Mono




