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
Confronto tra proprietà e indicizzatori (Guida per programmatori C#)
Limitazione dell'accessibilità delle funzioni di accesso (Guida per programmatori C#)
Proprietà implementate automaticamente (Guida per programmatori C#)
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#)