Parola chiave get
La parola chiave get
definisce un metodo funzione di accesso in una proprietà o indicizzatore che restituisce il valore della proprietà o l'elemento dell'indicizzatore. Per altre informazioni, vedere Proprietà, [Proprietà implementate automaticamente](.. /.. /programming-guide/classes-and-structs/automatically implemented-properties.md) e indicizzatori.
Per casi semplici in cui le funzioni di accesso e set
di get
una proprietà non eseguono altre operazioni rispetto all'impostazione o al recupero di un valore in un campo sottostante privato, è possibile sfruttare il supporto del compilatore C# per le proprietà implementate automaticamente. Nell'esempio seguente viene Hours
implementata come proprietà implementata automaticamente.
class TimePeriod3
{
public double Hours { get; set; }
}
Importante
Le proprietà implementate automaticamente non sono consentite per le dichiarazioni di proprietà dell'interfaccia o la dichiarazione di implementazione per una proprietà parziale. Il compilatore interpreta la sintassi corrispondente a una proprietà implementata automaticamente come dichiarazione dichiarante, non come dichiarazione di implementazione.
Spesso la funzione di accesso get
è costituita da una singola istruzione che restituisce un valore, come nell'esempio precedente. È possibile implementare la funzione di accesso get
come membro con corpo di espressione. L'esempio seguente implementa entrambe le funzioni di accesso get
e set
come membri con corpo di espressione.
class TimePeriod2
{
private double _seconds;
public double Seconds
{
get => _seconds;
set => _seconds = value;
}
}
Potrebbe essere necessario implementare uno dei corpi delle funzioni di accesso. È possibile usare una proprietà supportata da campi per consentire al compilatore di generare una funzione di accesso mentre si scrive l'altra. field
La parola chiave , aggiunta come funzionalità di anteprima in C# 13, consente di accedere al campo sottostante sintetizzato dal compilatore:
class TimePeriod4
{
public double Hours {
get;
set => field = (value >= 0)
? value
: throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
}
}
Importante
La field
parola chiave è una funzionalità di anteprima in C# 13. È necessario usare .NET 9 e impostare l'elemento <LangVersion>
su preview
nel file di progetto per usare la field
parola chiave contestuale.
È consigliabile prestare attenzione usando la funzionalità parola field
chiave in una classe con un campo denominato field
. La nuova field
parola chiave ombreggiate un campo denominato field
nell'ambito di una funzione di accesso alle proprietà. È possibile modificare il nome della field
variabile oppure usare il @
token per fare riferimento all'identificatore field
come @field
. Per altre informazioni, leggere la specifica della funzionalità per la field
parola chiave .
L'esempio seguente definisce le funzioni di accesso get
e set
per una proprietà denominata Seconds
. Usa il campo privato denominato _seconds
per portare in secondo piano il valore della proprietà.
class TimePeriod
{
private double _seconds;
public double Seconds
{
get { return _seconds; }
set
{
if (value < 0)
{
throw new ArgumentOutOfRangeException(nameof(value), "The value of the time period must be non-negative.");
}
_seconds = value;
}
}
}
Per altre informazioni, vedere la specifica del linguaggio C#. La specifica del linguaggio costituisce il riferimento ufficiale principale per la sintassi e l'uso di C#.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback: