Konuyu Oyla:
  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
   
Konu: C# - Değişkenlerin Faaliyet Alanı {1}
Hera
*
avatar
Teğmen
Durum: Çevrimdışı
Seviye Puanı: 3
Yaşam Puanı: 73 / 73
Deneyim: 93 / 100
Rep Sayısı: 3
Mesaj Sayısı: 27
Üyelik Tarihi: 13.04.2019
     
Yorum: #1
C# - Değişkenlerin Faaliyet Alanı {1}
15.04.2019 21:23
Anlatımları tam anlayabilmek için verdiğim örnekleri derleyicinizde çalıştırıp görün test edin. Önerim Visual Studio 2017-2019'dur.


C# dilinde programlar açılan ve kapanan parantezler içine yazılır. Bu açılan ve kapanan parantezler arasındaki bölgeye blok denir. Tanımlanan değişkene, ancak tanımlandığı blok içinde ulaşılabilir. Bu blok aralığına adeğişkenin faaliyet alanı denir. C#'ta faaliyet alanı şu kriterlere göre söyleyebilirim;
  1. Bir sınıfın üye elemanı olarak tanımlanmış değişken heer zaman sınıfın faaliyet alanı içindedir.
  2. Yerel bir değişken, tanımlandığı blok arasında kaldığı sürece faaliyet alanındadır. Bu konuda şimdilik kafanızın karışmasına gerek yok. İlerki konularımda detaylı olarak anlatacağım.
  3. for, while ve do-while gibi döngü bloklarında tanımlanan değişkenler döngünün dışına çıkılmadığı sürece faaliyet alanındadırlar.
Mesela, aşağıdaki kısa örnekte tanımladığım her iki "a" değişkeni birbirinden bağımsızdır ve bellekte ayrı bölgelerde saklanır.
Kod:
class Program
    {
        static void Main(string[] args)
        {
            {    // Birinci blok
                int a = 20;
            }
            {    // İkinci blok
                int a = 20;
            }
        }
    }

Yukarıdaki program derlendiğinde varsayılan derleyici ayarlarıyla uyarı verecektir, ancak bunun sebebi faaliyet alanları değil. Her iki blokta da tanımlanan "a" isimli değişkenler herhangi bir yerde kullanılmamıştır. Bu yüzden derleyici uyarı verecektir. Diğer yandan örnekte birinci ve ikinci blokta tanımlanan "a" isimli değişkenlere Main bloğu içinde geçersizdir. Birinci a değişkeninin faaliyet alanı 1. blok, ikinci a değişkeninde faaliyet alanı 2. bloktur. Bu durumda Main() bloğunda Console.WriteLine(a); gibi bir ifade hatalıdır, çünkü Main bloğu içerisinde tanımlanan bir a değişkeni yoktur. Unutmayalım diğer konularımda anlatacağım for ve loop döngüleri de birer blok olduğu için bu bloklarda tnaımlanan değişkenler döngü bloğunun dışında geçersizdir.

Yukarıdaki örnekte göze çarpması gereken diğer bir yenilik ise "//" karakterleri ile başlayan satırlardır. Bu karaterlerle başlayan satırlar yorum satırlarıdır. Yorum satılrarı genellikle programın kaynak kodunu açıklamak için kullanılır. Yorum satırları iki şekilde kullanılabilir.

Birincisi, tek satır halindeki yorumlardır, buna bir örnek verelim;
Kod:
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Yorum Satırı Örnek");
            // Bu satır yorum satırıdır.
        }
    }


İkinci yöntem ise, birden fazla satırı içerecek yorumları eklemektir, kullanımını örnek ile göstereyim;
Kod:
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Yorum Satırı Örnek");
            /*
            
             Bu iki  Karakter arasına ne yazılırsa yorum olarak gözükecektir.
            
             */
        }
    }

'/*' ile '*/' arasında kalan bölgeye istediğiniz sayıda yorum satırı eklenilebilir.

Faaliyet alanı ile ilgili diğer bir önemli nokta ise faaliyet alanı devam eden bir değişkenin bir daha tanımlanmasının hataya yol açmasıdır. Örneğin, aşağıdaki gibi bir durum derleme zamanında hata verecektir. Çünkü bir değişkenin faaliyet alanı bitmeden aynı isimli dedğişken tekrar tanımlanıyor;
Kod:
class Program
    {
        static void Main(string[] args)
        {
            int a;
            {
                int a = 20;
            }
        }
    }

Göründüğü gibi Main blooğunda tanımlanan "a" değişkenin faaliyet alanı açılan blokta devam etmektedir. Bu yüzden yukarıdaki gibi ifadeler geçersizdir. Üst seviyede açılan bloklar alt seviyedeki blokları kapsadığı için, ilk tanımlanan "a" değişkeni sonradan açılan blok içinde geçerliliğini sürdürmektedir.

Yukarıda anlattığım duruma ters düşüyor gibi görünsede aşağıdaki, kurallara uygun bir kullanımdır. Bu konuyu daha sonraki konularımda detaylıca anlatacağım.;
Kod:
class Program
    {
        static int a = 10;
        static void Main(string[] args)
        {
            int a = 5;
            Console.WriteLine(a);
        }
    }


yukarıdaki örneği derleyip çalıştırdığınızda ekrana 5 yazdığını göreceksiniz. Bu demek oluyor ki Main işlevi içinde faaliyet alanı devam eden iki tane "a" değişkeni olmasına ramen iç bloktaki "a" ekrana yazıldı.
(Bu konu en son: 15.04.2019 Tarihinde, Saat: 21:27 düzenlenmiştir. Düzenleyen: Hera.)
Alinti
MECZUP
*
avatar
Binbaşı
Durum: Çevrimdışı
Seviye Puanı: 14
Yaşam Puanı: 340 / 340
Deneyim: 63 / 100
Rep Sayısı: 33
Mesaj Sayısı: 245
Üyelik Tarihi: 17.10.2018
      
Yorum: #2
RE: C# - Değişkenlerin Faaliyet Alanı {1}
16.04.2019 18:31
Emeğine sağlık

Meczup Official

VarsaYoksa Cyberizm
Alinti



1 Ziyaretçi