Condividi tramite


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 automaticamentee 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 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. Usare la field parola chiave aggiunta in C# 14 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");
    }
}

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

Vedi anche