Sabitler (C# Programlama Kılavuzu)

Sabitler, derleme zamanında bilinen ve programın ömrü boyunca değişmeyen sabit değerlerdir. Sabitler, const değiştiricisi ile bildirilir. Yalnızca C# yerleşik türleri olarak constbildirilebilir. dışındaki String başvuru türü sabitleri yalnızca null değerle başlatılabilir. Sınıflar, yapılar ve diziler dahil olmak üzere kullanıcı tanımlı türler olamaz const. Çalışma zamanında bir kez başlatılan (örneğin bir oluşturucuda) ve bundan sonra değiştirilemeyen bir sınıf, yapı veya dizi oluşturmak için salt okunur değiştiriciyi kullanın.

C# yöntemleri, özellikleri veya olayları desteklemez const .

Sabit listesi türü, yerleşik integral türleri (örneğin int, , uintlongvb.) için adlandırılmış sabitler tanımlamanızı sağlar. Daha fazla bilgi için bkz . sabit listesi.

Sabitler bildirilirken başlatılmalıdır. Örneğin:

class Calendar1
{
    public const int Months = 12;
}

Bu örnekte sabit Months her zaman 12'dir ve sınıfın kendisi tarafından bile değiştirilemez. Aslında, derleyici C# kaynak kodunda sabit bir tanımlayıcıyla karşılaştığında (örneğin, Months), değişmez değeri doğrudan ürettiği ara dil (IL) koduyla değiştirir. Çalışma zamanında sabitle ilişkilendirilmiş bir değişken adresi olmadığından, const alanlar başvuruyla geçirilemez ve bir ifadede l değeri olarak görünemez.

Not

DLL'ler gibi diğer kodlarda tanımlanan sabit değerlere başvururken dikkatli olun. DLL'nin yeni bir sürümü sabit için yeni bir değer tanımlarsa, programınız yeni sürüme göre yeniden derlenene kadar eski değişmez değeri tutmaya devam eder.

Aynı türdeki birden çok sabit aynı anda bildirilebilir, örneğin:

class Calendar2
{
    public const int Months = 12, Weeks = 52, Days = 365;
}

Bir sabiti başlatmak için kullanılan ifade, döngüsel başvuru oluşturmazsa başka bir sabite başvurabilir. Örneğin:

class Calendar3
{
    public const int Months = 12;
    public const int Weeks = 52;
    public const int Days = 365;

    public const double DaysPerWeek = (double) Days / (double) Weeks;
    public const double DaysPerMonth = (double) Days / (double) Months;
}

Sabitler genel, özel, korumalı, , korumalı iç veya özel korumalı olarak işaretlenebilir. Bu erişim değiştiricileri, sınıf kullanıcılarının sabite nasıl erişebileceğini tanımlar. Daha fazla bilgi için bkz . Erişim Değiştiricileri.

Sabitlere statik alanlarmış gibi erişilir çünkü sabitin değeri türün tüm örnekleri için aynıdır. Bunları bildirmek için anahtar sözcüğünü static kullanmazsınız. Sabiti tanımlayan sınıfında olmayan ifadeler, sabite erişmek için sınıf adını, noktayı ve sabitin adını kullanmalıdır. Örneğin:

int birthstones = Calendar.Months;

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.