Aracılığıyla paylaş


get anahtar sözcüğü

anahtar sözcüğü, get özellik değerini veya dizin oluşturucu öğesini döndüren bir özellik veya dizin oluşturucuda bir erişimci yöntemi tanımlar. Daha fazla bilgi için bkz. Özellikler, Otomatik olarak uygulanan Özelliklerve Dizin Oluşturucuları.

Bir özelliğin get ve set erişimcinin özel bir yedekleme alanındaki değeri ayarlamak veya almaktan başka bir işlem gerçekleştirmediği basit durumlarda, C# derleyicisinin otomatik olarak uygulanan özelliklere yönelik desteğinden yararlanabilirsiniz. Aşağıdaki örnek, otomatik olarak uygulanan bir özellik olarak uygulanır Hours .

class TimePeriod3
{
    public double Hours { get; set; }
}

Önemli

Arabirim özelliği bildirimleri veya kısmi özellik için uygulama bildirimi için otomatik olarak uygulanan özelliklere izin verilmez. Derleyici, otomatik olarak uygulanan bir özelliği uygulayan bir bildirim olarak değil bildirim bildirimi olarak eşleşen söz dizimini yorumlar.

Genellikle erişimci, get önceki örnekte olduğu gibi bir değer döndüren tek bir deyimden oluşur. Erişimciyi get ifade gövdeli üye olarak uygulayabilirsiniz. Aşağıdaki örnek hem hem de erişimcisini getset ifade gövdeli üyeler olarak uygular.

class TimePeriod2
{
    private double _seconds;

    public double Seconds
    {
        get => _seconds;
        set => _seconds = value;
    }
}

Aksesuar gövdelerinden birini uygulamanız gerektiğini fark edebilirsiniz. Siz diğerini el ile yazarken derleyicinin bir erişimci oluşturmasına izin vermek için alan destekli bir özellik kullanabilirsiniz. Derleyici tarafından field sentezlenen yedekleme alanına erişmek için C# 14'te eklenen anahtar sözcüğünü kullanırsınız:

class TimePeriod4
{
    public double Hours {
        get;
        set => field = (value >= 0)
            ? value
            : throw new ArgumentOutOfRangeException(nameof(value), "The value must not be negative");
    }
}

Aşağıdaki örnek, adlı getözelliğin hem a set hem Seconds de erişimcisini tanımlar. Özellik değerini yedeklemek için adlı _seconds özel bir alan kullanır.

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

C# Dil Belirtimi

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.

Ayrıca bkz.