const (C# Başvurusu)

Sabit bir alan veya sabit yerel bir alan bildirmek için anahtar sözcüğünü const kullanırsınız. Sabit alanlar ve yerel değerler değişken değildir ve değiştirilemez. Sabitler sayı, Boole değeri, dize veya null başvuru olabilir. İstediğiniz zaman değiştirmeyi beklediğiniz bilgileri temsil eden bir sabit oluşturmayın. Örneğin, bir hizmetin fiyatını, ürün sürüm numarasını veya şirketin marka adını depolamak için sabit bir alan kullanmayın. Bu değerler zaman içinde değişebilir ve derleyiciler sabitleri yaydığından, değişiklikleri görmek için kitaplıklarınızla derlenen diğer kodların yeniden derlenmiş olması gerekir. Ayrıca readonly anahtar sözcüğüne de bakın. Örnek:

const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";

C# 10 ile başlayarak, kullanılan tüm ifadeler de sabit dizeler ise, ilişkilendirilmiş dizeler sabit olabilir. Bu özellik, sabit dizeler oluşturan kodu geliştirebilir:

const string Language = "C#";
const string Platform = ".NET";
const string Version = "10.0";
const string FullProductName = $"{Platform} - Language: {Language} Version: {Version}";

Açıklamalar

Sabit bildiriminin türü, bildirimin tanıttığını üyelerin türünü belirtir. Sabit bir yerel veya sabit alanın başlatıcısı, örtük olarak hedef türe dönüştürülebilen bir sabit ifade olmalıdır.

Sabit ifade, derleme zamanında tam olarak değerlendirilebilen bir ifadedir. Bu nedenle, başvuru türlerinin sabitleri için tek olası değerler ve null başvurulardır string .

Sabit bildirimi, aşağıdakiler gibi birden çok sabit bildirebilir:

public const double X = 1.0, Y = 2.0, Z = 3.0;

Değiştiriciye static sabit bir bildirimde izin verilmez.

Sabit, aşağıdaki gibi bir sabit ifadeye katılabilir:

public const int C1 = 5;
public const int C2 = C1 + 100;

Not

Readonly anahtar sözcüğü anahtar sözcükten const farklıdır. Bir const alan yalnızca alanın bildiriminde başlatılabilir. Alan readonly , bildirimde veya bir oluşturucuda başlatılabilir. Bu nedenle, readonly kullanılan oluşturucuya bağlı olarak alanlar farklı değerlere sahip olabilir. Ayrıca, bir const alan bir derleme zamanı sabiti olsa da, bu satırda readonly olduğu gibi çalışma zamanı sabitleri için kullanılabilir: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

Örnekler

public class ConstTest
{
    class SampleClass
    {
        public int x;
        public int y;
        public const int C1 = 5;
        public const int C2 = C1 + 5;

        public SampleClass(int p1, int p2)
        {
            x = p1;
            y = p2;
        }
    }

    static void Main()
    {
        var mC = new SampleClass(11, 22);
        Console.WriteLine($"x = {mC.x}, y = {mC.y}");
        Console.WriteLine($"C1 = {SampleClass.C1}, C2 = {SampleClass.C2}");
    }
}
/* Output
    x = 11, y = 22
    C1 = 5, C2 = 10
*/

Bu örnekte sabitlerin yerel değişkenler olarak nasıl kullanılacağı gösterilmektedir.

public class SealedTest
{
    static void Main()
    {
        const int C = 707;
        Console.WriteLine($"My local constant = {C}");
    }
}
// Output: My local constant = 707

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