Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: C# - Sabit İfadeler {2}
Hera
*
avatar
Yüzbaşı
Durum: Çevrimdışı
Seviye Puanı: 10
Yaşam Puanı: 235 / 235
Deneyim: 40 / 100
Rep Sayısı: 43
Mesaj Sayısı: 129
Üyelik Tarihi: 13.04.2019
     
Yorum: #1
C# - Sabit İfadeler {2}
16.04.2019 20:54
Bir program boyunca değerinin değişmeyeceğini düşündüğünüz verileri sabit veriler olarak tanımlarız. Sabit veriler tanımlamak için tanımlama satırına const anahtar sözcüğünü kullanırız. const olarak tnaımlanmış değişkenlerin en büyük avantajı program içinde sıkça kullandığımız değerleri aniden değiştirmek gerektiğinde görülür, matematiksel işlemler yapan bir programda pi sayısını const olarak tanımlayıp, istediğimiz zaman pi sayısını değiştirebiliriz. Tabi bu işlemi const değil de normal bir değişkenle de yapabilirdik, ama şu bir gerçek ki çok uzun programlarda sabit olmasını istediğimiz değişkeni yanlışıkla değiştirebiliriz. Fakat const olarak tanımladığımızda bir değişkenin değerini değiştirmeye çalıştığımızda C# derleyicisi derleme esnasında hata verecektir. Buda gözden kaçan bazı durumlardaki hataları en aza indirmek demektir. Örneğin, programın tamamında kullanılmak üzere tanımlanan pi sayısı sabit ifadesi olarak şöyle tanımlanır;
Kod:
using System;
namespace DersAnlatDene
{
    class Program
    {
        const double pi = 3.14;
    }
}


Programın herhangi bir yerinde pi değerini değiştirmek hataya yol açacaktır. Bu hatanın ne olduğunu görmek için bu örneği yazıp derlemeyi deneyin.
Kod:
using System;
namespace DersAnlatDene
{
    class Program
    {
        const double pi = 3.14;
        pi = 3.14;
    }
}

Bu programı derlediğimizde hata verecektir.

Aynı şekilde de sabitlere ilk değer verilirken yine sabitler kullanılmamalıdır. Sabitlere ilk değer verilmediği durumlarda yine derleme hatası ile karşılaşırız. Örnek olarak şöyle göstereyim;
Kod:
using System;
namespace cyberizm
{
    class Program
    {
        static void Main(string[] args)
        {
            int a = 3, b;
            b = 3;
            const int c = a + b;
        }
    }
}


Şu şekilde kullanım tamamen geçerli bir kullanımdır;
Kod:
using System;
namespace cyberizm
{
    class Program
    {
        static void Main(string[] args)
        {
            const int a = 3;
            const int b = a + 5;
            Console.WriteLine(b);
        }
    }
}


Bu program derleyip çalıştırıldığında ekrana 8 yazdığını g öreceksiniz, const olarak tanımlanan değişkenlere ilk değer ataması yaparken sadece sabitlerin kullanılması gerekiyordu. Ancak yukarıdaki programda b'nin bildirimi sırasında a bir sabit olarak işlem görmektedir. Aynı programı biraz değiştirip yazdığımızda geçersiz hale gelecektir.

Mesela a'nın bildiriminden sonra
a = a + 1;
ifadesini yazarsak, bu deyimden sonraki bildirimlerde a değişkeni bir sabit olarak ele alınmayacaktır. Yani aşağıdaki program derlenmeyecektir;
Kod:
using System;
namespace cyberizm
{
    class Program
    {
        static void Main(string[] args)
        {
            const int a = 3;
            a = a + 1; // Artık sabit değil
            const int b = a + 5; // a, sabit olmadığından
            Console.WriteLine(b); // bu bildirim geçersizdir.
        }
    }
}


Sabit ifadelerle ilgili bilmemiz gereken 3 önemli kural vardır. Bunları maddeler halinde yazayım.
  1. Sabitler tanımlandıklarında değerleri atanmalıdır. İlk değer verilmeyen değişkenler const yani sabit olamazlar.
  2. Sabit ifadelere ancak sabit ifadelerle ilk değer atanabilir.
  3. Sabit ifadeleri içsel tasarım olarak zaten statik oldukları için, ayrıca statik olarak belirtmek hatalıdır ve kullanılmaz. Sınıflar konusunda static anahtar sözcüğüne değineceğim.

Son olarak sabit ifadelerine örnek olması açasındna bazı sabit değerleri vereyim;
100, 200, -100 ----> Bunlar int sabitleridir.
'A', 'S', '//' ----> Bunlar char sabitleridir.
10, 20, 2.3, -1.1 ----> Bunlar float sayı türleridir.
(Bu konu en son: 16.04.2019 Tarihinde, Saat: 20:55 düzenlenmiştir. Düzenleyen: Hera.)
Alinti
DeathWing
*
avatar
Yüzbaşı
Durum: Çevrimdışı
Seviye Puanı: 8
Yaşam Puanı: 168 / 196
Deneyim: 84 / 100
Rep Sayısı: 25
Mesaj Sayısı: 97
Üyelik Tarihi: 26.03.2019
     
Yorum: #2
RE: C# - Sabit İfadeler {2}
21.04.2019 20:52
Teşekkürler, Emeğine Sağlık Smile
Alinti



1 Ziyaretçi