Parola chiave set (Riferimenti per C#)
La parola chiave set
definisce un metodo funzione di accesso in una proprietà o indicizzatore che assegna un valore alla proprietà o all'elemento dell'indicizzatore. Per altre informazioni ed esempi, vedere Proprietà, Proprietà implementate automaticamente 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 usare 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.
Potrebbe essere necessario implementare uno dei corpi delle funzioni di accesso. La field
parola chiave aggiunta come funzionalità di anteprima in C# 13 dichiara una proprietà supportata da campi. È possibile usare una proprietà supportata da campi per consentire al compilatore di generare una funzione di accesso mentre si scrive l'altra. Usare la field
parola chiave per 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 .
Spesso la funzione di accesso set
è costituita da una singola istruzione che assegna un valore, come nell'esempio precedente. È possibile implementare la funzione di accesso set
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;
}
}
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;
}
}
}
Specifiche del linguaggio C#
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#.