Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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 get di set 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 in C# 14, dichiara una proprietà supportata dal campo. È 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");
}
}
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#.