Condividi tramite


Proprietà (Guida per programmatori C#)

Aggiornamento: novembre 2007

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. 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 Accessibilità asimmetrica delle funzioni di accesso (Guida per programmatori C#).

  • 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.

  • 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 le seguenti sezioni in Specifiche del linguaggio C#:

  • 1.6.7.2 Proprietà

  • 10.2.9.1 Nomi dei membri riservati per le proprietà

  • 10.7 Proprietà

Vedere anche

Concetti

Guida per programmatori C#

Progettazione di proprietà

Riferimenti

Utilizzo delle proprietà (Guida per programmatori C#)

Indicizzatori (Guida per programmatori C#)