C# Const Kavramı dersimiz ile C Sharp eğitimlerimize devam ediyoruz. C sharp const kavramı ‘nın anlamı readonly yani sadece okunabilir değildir. Const ile ReadOnly anahtar kelimelerinin birbirlerinden farkları vardır. Readonly’i nesne yaklaşımı ile tanımlayabilirken Const’ta bunu yapamayız. Const Türkçe’ye sabit olarak çevrilebilir. Const olarak tanımladığımız bir değişken program içerisinde hiçbir şekilde değiştirilemezler. Pi sayısı yada bunun gibi sabit değerleri tanımlamak için birebirdir. Ayrıca performans açısından da kullanılması gereken bir kavramdır. Çünkü const ile tanımlanmış değerler bellekte çok daha az yer kaplar.
C sharp const kavramı
- Class seviyesinde yani en dışta tanımlanırlar.
- Const olarak tanımlanan değişkenler proje içerisinde yada runtime’da hiçbir şekilde değiştirilemezler.
- Const değişkenlerine tanımlandıkları satırda değer atanmalıdır.
- Kodların okunmasını ve değişkenin kullanım amacını belli ederler.
- Const değişkenlerinin değerlerini sadece bir başka const değişkeni değiştirebilir.
- Const olarak tanımlanan değişkenlere değer atanırken sadece const olarak tanımlanmış değişkenler ile hesaplama yapılarak değer atanabilir.
- Const olarak tanımlanan değişkenlere static bildirimi yapamazsınız.
- Bir void yada metodu const olarak tanımlayamayız.
- DateTime türü const olarak tanımlanamaz.
- Application.StartupPath const olarak tanımlamaz.
C Sharp Const Kavramını açıkladıktan sonra bir iki örnek ile konuyu pekiştirelim.
public const string ProjeFirma = AssemblyInfo.AssemblyCompany; public const string ProjeAdi = "mustafabukulmez.com"; public const int GunSaati = 24; public const int GunDakika = GunSaati * 60; public const int GunSAniye = GunDakika * 60; public const int IsikHizi_km = 1079252850; // km/saat public const int IsikHizi_mt = 299792458; // mt/saniye public const double Pi = 3.14159265359;
Yukarıda gördüğünüz gibi önceki Global Değişkenler dersimde belirttiğim gibi const değişkenlerimizi de public anahtar kelimesi ile global hale getirdik.
Şimdi bir örnek proje ile konuyu biraz daha pekiştirelim.
Senaryomuz şöyle olsun. Yarı çapını yazdığımız bir dairenin alanını ve çevresini hesaplayan bir program yazalım.
Kodlarımız.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; using DevExpress.XtraEditors; namespace mustafabukulmez_com { public partial class deneme : DevExpress.XtraEditors.XtraForm { public deneme() { InitializeComponent(); } public const double Pi = 3.14159265359; private void btn_Hesapla_Click(object sender, EventArgs e) { int yaricap = 0; try { yaricap = int.Parse(txt_yc.Text); } catch (FormatException) { MessageBox.Show("Sadece sayi yazınız."); } double alan = yaricap * yaricap * Pi; txt_alan.Text = alan.ToString(); double cevre = 2 * Pi * yaricap; txt_cevre.Text = cevre.ToString(); } } }
Ekran görüntüsü şöyledir.
Kodları incelediğimizde, textbox’tan aldığımız değeri try catch içerisine almış olduğumuz görünüyor. Ancak dikkat edilmesi gereken nokta catch kısmıdır. Burada sadece FormatExeption hatası olduğunda Sadece Sayı Giriniz hatası verecektir. Başka bir hata çıkarsa program kırılacaktır. Bu şekilde kullanıcı istediğimiz alana sayı girmez ise istediğimiz mesajı görecektir.
Try Catch Finally hakkında ayrıntılı yazım için tıklayınız.
C Sharp Eğitim Seti ve ERP Programlama ders listesi için tıklayınız.
C sharp const kavramı dersimizde bu kadar dostlar. Diğer derslerimizde görüşmek üzere.
Sağlıcakla ve takipte kalın. ;)
// Merhaba, öğretmenimiz aşagıdakı kodu ekrana yazıp aldıgımız hata mesajını sebebini arastırmamızı ıstedı pek anlamadım.:( Yardımcı olur musunuz?
const double PI =3.14;
const double PI;
Console.WriteLine(PI);
Göründüğü kadarı ile aynı isimde iki değişken tanımlanmış. Aynı isimde iki değişken olamaz.