Vai al contenuto principale
Pubblicato il

Proprietà in C#

Condividi:

Introduzione

In C#, come in molti linguaggi di programmazione orientati agli oggetti, l'incapsulamento è una pratica fondamentale. Promuove la protezione e l'integrità dei dati limitando l'accesso diretto ad essi. Le proprietà svolgono un ruolo cruciale in questo aspetto.

Cosa sono le Proprietà?

Una proprietà è un membro di una classe che fornisce un meccanismo per ottenere o impostare il valore di un campo interno. Invece di accedere direttamente al campo, è possibile usare le proprietà per interagire con esso, garantendo che venga rispettata qualsiasi logica associata alla lettura o alla scrittura del campo.

Vantaggi delle Proprietà

  1. Incapsulamento: Le proprietà aiutano a proteggere i dati, evitando che vengano modificati in modo indesiderato.
  2. Validazione: Prima di assegnare un valore, è possibile garantire che rientri in un determinato intervallo o che soddisfi altre condizioni.
  3. Rappresentazione Calcolata: Le proprietà possono restituire un valore calcolato anziché uno memorizzato.

Approfondimento su get e set

  • get: Questo accessor viene utilizzato quando si legge il valore della proprietà. È possibile aggiungere logica aggiuntiva, come calcoli o trasformazioni, prima di restituire il valore.
  • set: Questo accessor entra in gioco quando si tenta di modificare il valore della proprietà. È qui che avvengono la validazione o altre logiche relative alla modifica del valore.

Proprietà di Sola Lettura e Sola Scrittura

  • Sola Lettura: Una proprietà che definisce solo l'accessor get.
  • Sola Scrittura: Sebbene rare, sono proprietà che definiscono solo l'accessor set.

Esempi Avanzati

Oltre all'esempio base, esploriamo un po' di più:

public class Cerchio {
  private double raggio;

  public double Raggio {
    get { return raggio; }
    set {
      if (value < 0)
        raggio = 0;
      else
        raggio = value;
    }
  }

  // Proprietà di sola lettura
  public double Area {
    get {
      return Math.PI * raggio * raggio;
    }
  }
}

In questo esempio, abbiamo una classe Cerchio che possiede una proprietà Raggio e una proprietà di sola lettura Area. Il Raggio non può essere negativo, e l'Area viene calcolata in base al Raggio.

Conclusione

L'uso corretto delle proprietà in C# è essenziale per garantire che i dati vengano gestiti in modo sicuro e controllato. Offrono un modo strutturato di interagire con i campi di una classe, mantenendo l'integrità dei dati e offrendo flessibilità nell'implementazione.

Happy coding!