Sabitler (C# Programlama Kılavuzu)Constants (C# Programming Guide)

Sabitler, derleme zamanında bilinen ve programın ömrü boyunca değişmeyen sabit değerlerdir.Constants are immutable values which are known at compile time and do not change for the life of the program. Sabitler const değiştiricisi ile bildirilmiştir.Constants are declared with the const modifier. Yalnızca C# yerleşik türler (hariç System.Object) olarak constbildirilebilecek.Only the C# built-in types (excluding System.Object) may be declared as const. Yerleşik türlerin listesi için bkz. Yerleşik türler tablosu.For a list of the built-in types, see Built-In Types Table. Sınıflar, yapılar ve diziler constdahil olmak üzere Kullanıcı tanımlı türler olamaz.User-defined types, including classes, structs, and arrays, cannot be const. Çalışma zamanında bir kez başlatılan bir sınıf, yapı veya dizi oluşturmak için salt okunur değiştiricisini kullanın (örneğin, bir oluşturucuda) ve bundan sonra değiştirilemez.Use the readonly modifier to create a class, struct, or array that is initialized one time at runtime (for example in a constructor) and thereafter cannot be changed.

C#yöntemleri, özellikleri const veya olayları desteklemez.C# does not support const methods, properties, or events.

Sabit listesi türü, integral yerleşik türler (örneğin int uint long,, vb.) için adlandırılmış sabitler tanımlamanızı sağlar.The enum type enables you to define named constants for integral built-in types (for example int, uint, long, and so on). Daha fazla bilgi için bkz. enum.For more information, see enum.

Sabitler, bildirildiği için başlatılmalıdır.Constants must be initialized as they are declared. Örneğin:For example:

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.In this example, the constant months is always 12, and it cannot be changed even by the class itself. Aslında, derleyici C# kaynak kodunda bir sabit tanımlayıcıyla karşılaştığında (örneğin, months), değişmez değer değerini doğrudan ürettiği ara dil (IL) koduna koyar.In fact, when the compiler encounters a constant identifier in C# source code (for example, months), it substitutes the literal value directly into the intermediate language (IL) code that it produces. Çalışma zamanında bir sabitle ilişkili değişken adresi olmadığından, const alanlar başvuruya göre geçirilemez ve bir ifadede l değeri olarak görünemez.Because there is no variable address associated with a constant at run time, const fields cannot be passed by reference and cannot appear as an l-value in an expression.

Not

Dll 'Ler gibi başka bir kodda tanımlanan sabit değerlere başvurduğunuzda dikkatli olun.Use caution when you refer to constant values defined in other code such as DLLs. Yeni bir DLL sürümü sabit için yeni bir değer tanımlıyorsa, programınız yeni sürüme yeniden derlenene kadar eski değişmez değeri de tutar.If a new version of the DLL defines a new value for the constant, your program will still hold the old literal value until it is recompiled against the new version.

Aynı türden birden fazla sabit aynı anda bildirilebilecek, örneğin:Multiple constants of the same type can be declared at the same time, for example:

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şturmayan başka bir sabite başvurabilir.The expression that is used to initialize a constant can refer to another constant if it does not create a circular reference. Örneğin:For example:

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ı, dahili, korunan iç veya özel korumalıolarak işaretlenebilir.Constants can be marked as public, private, protected, internal, protected internal or private protected. Bu erişim değiştiricileri, sınıfın kullanıcılarının sabitine nasıl erişekullanabileceğinizi tanımlar.These access modifiers define how users of the class can access the constant. Daha fazla bilgi için bkz. erişim değiştiricileri.For more information, see Access Modifiers.

Sabitlere statik alanlar gibi erişilir çünkü sabit değeri, türün tüm örnekleri için aynı.Constants are accessed as if they were static fields because the value of the constant is the same for all instances of the type. Bunları bildirmek için static anahtar sözcüğünü kullanmayın.You do not use the static keyword to declare them. Sabiti tanımlayan sınıfta olmayan ifadeler, sabit erişim için sınıf adı, nokta ve sabitin adını kullanmalıdır.Expressions that are not in the class that defines the constant must use the class name, a period, and the name of the constant to access the constant. Örneğin:For example:

int birthstones = Calendar.Months;

C# Dil 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