Condividi tramite


Proprietà (Guida per programmatori C#)

Le proprietà sono membri che offrono un meccanismo flessibile per la lettura, la scrittura o il calcolo dei valori dei campi privati. Possono essere utilizzate come se fossero membri dati pubblici ma sono in realtà metodi speciali denominati funzioni di accesso. Questo consente di semplificare l'accesso ai dati fornendo al tempo stesso la sicurezza e la flessibilità dei metodi.

In questo esempio viene archiviato un periodo di tempo nella classe TimePeriod. A livello interno, il periodo viene archiviato in secondi. Tuttavia, viene fornita una proprietà denominata Hours che consente a un client di esprimere 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 Accessibilità delle funzioni di accesso.

  • La parola chiave value viene utilizzata per definire il valore assegnato dall'indicizzatore set.

  • Le proprietà che non implementano un metodo set sono in sola lettura.

Sezioni correlate

Specifiche del linguaggio C#

Per ulteriori informazioni, vedere le seguenti sezioni in Specifiche del linguaggio C#:

  • 1.6.6.2 Proprietà

  • 10.2.7.1 Nomi dei membri riservati per le proprietà

  • 10.6 Proprietà

Vedere anche

Riferimenti

Utilizzo delle proprietà (Guida per programmatori C#)
Indicizzatori (Guida per programmatori C#)

Concetti

Guida per programmatori C#
Progettazione di proprietà