const (C# Başvurusu)
constSabit bir alan veya sabit bir yerel değer bildirmek için anahtar sözcüğünü kullanırsınız. Sabit alanlar ve Yereller değişken değildir ve değiştirilemeyebilir. Sabitler sayı, Boole değeri, dize veya null başvuru olabilir. İstediğiniz zaman değiştirilmesini düşündüğünüz bilgileri temsil etmek için 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 yaydığı için, kitaplıklarınız ile derlenen diğer kodun değişiklikleri görmek için yeniden derlenmesi gerekir. Ayrıca bkz. ReadOnly anahtar sözcüğü. Örnek:
const int X = 0;
public const double GravitationalConstant = 6.673e-11;
private const string ProductName = "Visual C#";
C# 10 ' dan başlayarak, kullanılan tüm ifadeler de sabit dizeler ise, enterpolasyonlu dizeler sabitler olabilir. Bu özellik sabit dizeler oluşturan kodu iyileştirebilirler:
const string Language = "C#";
const string Platform = ".NET";
const string Version = "10.0";
const string FullProductName = $"{Platform} - Language: {Language} Version: {Version}";
Açıklamalar
Sabit bir bildirimin türü, bildirimin sunmakta olduğu üyelerin türünü belirtir. 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.
Sabit bir ifade, derleme zamanında tam olarak değerlendirilebilen bir ifadedir. Bu nedenle, başvuru türlerinin sabitlerinin tek olası değerleri string ve null bir başvurudur.
Sabit bildirimi, şöyle birçok sabit bildirebilir:
public const double X = 1.0, Y = 2.0, Z = 3.0;
staticSabit bildiriminde değiştiriciye izin verilmez.
Bir 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üğü const anahtar sözcükten farklıdır. Bir const alan yalnızca alanın bildiriminde başlatılabilir. Bir readonly alan, bildirimde ya da bir Oluşturucu içinde başlatılabilir. Bu nedenle, readonly alan, kullanılan oluşturucuya bağlı olarak farklı değerlere sahip olabilir. Ayrıca, const alan bir derleme zamanı sabiti olsa da, readonly Bu satırda 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 örnek, sabitlerin yerel değişkenler olarak nasıl kullanılacağını gösterir.
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.