C# dilinde checked ifadesi, aritmetik işlemlerde taşma (overflow) durumlarını kontrol etmek için kullanılır. Normalde, C# dilinde tamsayı aritmetiği varsayılan olarak taşma durumlarına karşı kontrol edilmez ve bu durumda taşan değerler anlam dışı sonuçlar üretebilir. Ancak checked ifadesi kullanılarak bu taşma durumları kontrol edilebilir ve gerektiğinde istisna fırlatılabilir.
Örneğin, aşağıdaki kodda checked ifadesi kullanılmadan bir taşma durumu oluşur:
int a = int.MaxValue;
int b = a + 1; // Bu işlem taşma durumuna yol açar
Console.WriteLine(b); // -2147483648 olarak yazdırılır
Yukarıdaki kodda, int türünün maksimum değerine bir eklemeye çalışıldığında taşma durumu gerçekleşir ve sonuç istenmeyen bir değer olan -2147483648 olur.
Ancak checked ifadesi kullanılarak taşma durumları kontrol edilebilir:
checked
{
int a = int.MaxValue;
int b = a + 1; // Bu işlem taşma durumuna yol açar ve istisna fırlatır
Console.WriteLine(b); // Bu kod çalışmaz, çünkü istisna fırlatıldı
}
checked ifadesi içindeki işlemler, taşma durumlarına karşı kontrol edilir ve bir taşma durumu oluştuğunda System.OverflowException türünde bir istisna fırlatılır.
Genel olarak, checked ifadesi, taşma durumlarını kontrol etmek ve bu durumlarla başa çıkmak için kullanılır. Ancak varsayılan olarak C# dilinde taşma durumları kontrol edilmediğinden, bu ifadeyi kullanırken dikkatli olmak önemlidir. Taşma durumlarının genellikle program hatalarına yol açtığı ve beklenmeyen sonuçlar üretebileceği unutulmamalıdır.
unchecked ifadesi, C# dilinde tam sayı aritmetiği işlemlerinde taşma durumlarını kontrol etmeme durumunu belirtmek için kullanılır. Varsayılan olarak, C# dilinde tam sayı aritmetiği işlemleri unchecked olarak gerçekleştirilir, yani taşma kontrolü yapılmaz ve taşma durumunda ortaya çıkan değerler öngörülemeyen sonuçlar verebilir.
unchecked
{
int a = int.MaxValue;
int b = a + 1; // Bu işlem taşma durumuna yol açar, ancak taşma kontrol edilmez
Console.WriteLine(b); // -2147483648 olarak yazdırılır
}
unchecked ifadesi genellikle performans gereksinimleri nedeniyle taşma durumlarını kontrol etmek istemediğiniz durumlarda kullanılır. Ancak taşma durumlarının program hatalarına yol açabileceği ve beklenmeyen sonuçlar üretebileceği unutulmamalıdır. Bu nedenle unchecked ifadesini kullanırken dikkatli olmak önemlidir.