Proprietà (Guida per programmatori C#)

Una proprietà è un membro che offre un meccanismo flessibile per la lettura, la scrittura o il calcolo del valore di un campo privato. Possono essere utilizzate come se fossero membri dati pubblici, ma sono in realtà metodi speciali denominati funzioni di accesso. In questo modo, è possibile accedere facilmente ai dati e al tempo stesso promuovere la sicurezza e la flessibilità dei metodi.

In questo esempio, nella classe TimePeriod viene memorizzato un periodo di tempo. Internamente, il periodo viene memorizzato in secondi. Tuttavia, una proprietà denominata Hours consente a un client di specificare il tempo in ore. Le funzioni di accesso della proprietà Hours consentono di eseguire la conversione da ore a secondi e viceversa.

Esempio

class TimePeriod
{
    private double seconds;

    public double Hours
    {
        get { return seconds / 3600; }
        set { seconds = value * 3600; }
    }
}


class Program
{
    static void Main()
    {
        TimePeriod t = new TimePeriod();

        // Assigning the Hours property causes the 'set' accessor to be called.
        t.Hours = 24;

        // Evaluating the Hours property causes the 'get' accessor to be called.
        System.Console.WriteLine("Time in hours: " + t.Hours);
    }
}
// Output: Time in hours: 24

Cenni preliminari sulle proprietà

  • Le proprietà consentono a una classe di esporre un modo pubblico per ottenere e impostare valori, nascondendo tuttavia il codice di implementazione o di verifica.

  • La funzione di accesso get della proprietà viene utilizzata per restituire il valore della proprietà, mentre la funzione di accesso set viene utilizzata per assegnare un nuovo valore. A queste funzioni di accesso è possibile assegnare livelli di accesso differenti. Per ulteriori informazioni, vedere Limitazione dell'accessibilità delle funzioni di accesso (Guida per programmatori C#).

  • La parola chiave value viene utilizzata per definire il valore assegnato dalla funzione di accesso set.

  • Le proprietà che non implementano una funzione di accesso set sono di sola lettura.

  • Per proprietà semplici che non richiedono codice di funzione di accesso personalizzato, è opportuno considerare la possibilità di utilizzare proprietà implementate automaticamente. Per ulteriori informazioni, vedere Proprietà implementate automaticamente (Guida per programmatori C#).

Sezioni correlate

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere la Specifiche del linguaggio C#. La specifica del linguaggio è la fonte ufficiale per la sintassi e l'utilizzo di C#.

Vedere anche

Riferimenti

Utilizzo delle proprietà (Guida per programmatori C#)

Indicizzatori (Guida per programmatori C#)

Concetti

Guida per programmatori C#

Progettazione di proprietà