const (C# Başvurusu)const (C# Reference)

Sabit bir alan const veya sabit bir yerel değer bildirmek için anahtar sözcüğünü kullanırsınız.You use the const keyword to declare a constant field or a constant local. Sabit alanlar ve Yereller değişken değildir ve değiştirilemeyebilir.Constant fields and locals aren't variables and may not be modified. Sabitler sayı, Boole değeri, dize veya null başvuru olabilir.Constants can be numbers, Boolean values, strings, or a null reference. İstediğiniz zaman değiştirilmesini düşündüğünüz bilgileri temsil etmek için bir sabit oluşturmayın.Don’t create a constant to represent information that you expect to change at any time. Ö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.For example, don’t use a constant field to store the price of a service, a product version number, or the brand name of a company. Bu değerler zaman içinde değişebilir ve derleyiciler yaydığı için, kitaplıklarınız ile derlenen diğer kodun değişiklikleri görmek için yeniden derlenmesi gerekir.These values can change over time, and because compilers propagate constants, other code compiled with your libraries will have to be recompiled to see the changes. Ayrıca bkz. ReadOnly anahtar sözcüğü.See also the readonly keyword. Örneğin:For example:

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

AçıklamalarRemarks

Sabit bir bildirimin türü, bildirimin sunmakta olduğu üyelerin türünü belirtir.The type of a constant declaration specifies the type of the members that the declaration introduces. Sabit bir yerel veya sabit alanın başlatıcısı, hedef türe örtük olarak dönüştürülemeyen bir sabit ifade olmalıdır.The initializer of a constant local or a constant field must be a constant expression that can be implicitly converted to the target type.

Sabit bir ifade, derleme zamanında tam olarak değerlendirilebilen bir ifadedir.A constant expression is an expression that can be fully evaluated at compile time. Bu nedenle, başvuru türlerinin sabitlerinin string tek olası değerleri ve null bir başvurudur.Therefore, the only possible values for constants of reference types are string and a null reference.

Sabit bildirimi, şöyle birçok sabit bildirebilir:The constant declaration can declare multiple constants, such as:

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

Sabit static bildiriminde değiştiriciye izin verilmez.The static modifier is not allowed in a constant declaration.

Bir sabit, aşağıdaki gibi bir sabit ifadeye katılabilir:A constant can participate in a constant expression, as follows:

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

Not

ReadOnly anahtar sözcüğü const anahtar sözcükten farklıdır.The readonly keyword differs from the const keyword. Bir const alan yalnızca alanın bildiriminde başlatılabilir.A const field can only be initialized at the declaration of the field. Bir readonly alan, bildirimde ya da bir Oluşturucu içinde başlatılabilir.A readonly field can be initialized either at the declaration or in a constructor. Bu nedenle readonly , alan, kullanılan oluşturucuya bağlı olarak farklı değerlere sahip olabilir.Therefore, readonly fields can have different values depending on the constructor used. Ayrıca, const alan bir derleme zamanı sabiti readonly olsa da, bu satırda olduğu gibi çalışma zamanı sabitleri için kullanılabilir:public static readonly uint l1 = (uint)DateTime.Now.Ticks;Also, although a const field is a compile-time constant, the readonly field can be used for run-time constants, as in this line: public static readonly uint l1 = (uint)DateTime.Now.Ticks;

ÖrnekExample

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
*/

ÖrnekExample

Bu örnek, sabitlerin yerel değişkenler olarak nasıl kullanılacağını gösterir.This example demonstrates how to use constants as local variables.

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

C# dili belirtimiC# language specification

Daha fazla bilgi edinmek için, bkz. C# Dil Belirtimi.For more information, see the C# Language Specification. Dil belirtimi, C# sözdizimi ve kullanımı için kesin bir kaynaktır.The language specification is the definitive source for C# syntax and usage.

Ayrıca bkz.See also