Leggere in inglese

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 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;
        }
    }
}

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