Utilizzare i primary constructor di C# per inizializzare le proprietà

di Stefano Mostarda, in .NET,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi