Değişkenlerin Faaliyet Alanları (Scope)

Degisken

     C# dilinde programın genel akışı açılan ve kapanan parantezler içerisinde yazılır. Bu açılan ve kapanan parantezler arasındaki bölgeye ”Blok” denir. Tanımlanan bir değişkene, ancak tanımlandığı blok içerisinde ulaşılabilir. Örneğin aşağıdaki kısa örnekte tanımlanan her iki ”a” değişkeni birbirinden bağımsızdır ve bellekte ayrı bölgelerde saklanırlar.

Public class deneme

{

public static void main()

{

{//Birinci Blok

int a = 20;

}

{//İkinci Blok

int a = 20;

}

}

}

}

Yukarıdaki örnekte birinci ve ikinci blokta tanımlanan ”a” isimli değişkenler Main bloğu içinde geçersizdir. Birinci a değişkeninin faaliyet alanı 1.Blok, ikinci a değişkenin faaliyet alanı ise 2.Bloktur. Bu durumda Main() bloğunda Console.WriteLine(a); gibi bir ifade hatalıdır, çünkü Main bloğu içinde tanımlanan bir a değişkeni yoktur. Unutmamalıyız ki daha sonra ki makalelerde detaylı olarak göreceğimiz for ve diğer döngüler de birer blok olduğu için bu bloklarda tanımlanan değişkenler döngü bloğunun dışında geçersiz olacaktır.

C# CTS (COMMON TYPE SYSTEM) TİPLERİ

Csharp-veri-tipleri

.NET bir yazılım geliştirme platformudur. Aslında bütün veri tipleri CTS dediğimiz bir sistem ile tanınırlar. Yani C# dilinde ki veri türleri aslında CTS’deki veri türleri için birer  arayüz gibidirler. CTS sayesinde .NET platformu için geliştirilen bütün diller aynı veri tiplerini kullanırlar, tek değişen veri türleri  tanımlama yöntemi ve syntax’ıdır. Bu yüzden bizim C# dili ile tanımlayacağımız her veri tipinin CTS’de bir karşılığı mevcuttur.

C# dilinde tanımladığımız bütün basit veri tipleri aslında CTS’de bulunan bir yapı nesnesidir. C# dilindeki önceden tanımlanmış temel veri tipleri on beş tanedir. Bunlardan on üçü değer tipi ikisi de referans tipidir.

Değişkenler bellekte bulunan verilerdir. Bir değişkeni kullandığımız zaman o değişkenin bellekte bulunduğu yerdeki bilgiyi kullanırız. Değer tipleri veriyi direk olarak bellek bölgesinden alırken referans tipleri başka bir nesneye referans gösterirler. Yani referans tipleri içinde veri değil adres bilgisi tutarlar. Veri tipleri stack dediğimiz bellek bölgesinde tutulurlar, referans tipleri içinde ise heap bellek bölgesinde saklanırlar. Int, double, float gibi veri tipleri değer tiplerine örnek gösterilebilir. Herhangi bir sınıf türü ise referans tipine örnek gösterilebilir. Değer tipleri birbirine eşitlenirken değişkenin barındırdığı değer bir diğer değişkene kopyalanır. Böylece iki farklı bağımsız değişken oluşur. Referans tipleri ise eşitleme sırasında değişkenlerin taşıdıkları veri değil heap bölgesinde işaret ettikleri adres kopyalanır. Böylece eğer iki referans değişkenini birbirine eşitledi isek ve daha sonra bunlardan birinde bulunan veriyi değiştirdi ise  otomatik olarak diğer referans değişkeninin değeri de değişir. Çünkü adreste bulunan veri değişince bu adresi işaret eden iki değişkende yeni veri bilgisine ulaşır.

 

1 Comment

  1. Bilgilendirdiginiz icin tesekkurler guzel bir yazi olmus

    Reply

Trackbacks/Pingbacks

  1. C# Değişken Kod Örnekleri | Sena Gül - […] yazılarımızda C# nedir, C# Değişken Kavramı, Referans – Değer Türleri gibi konuları işlemiştik. Şimdi de değişkenleri kod içerisinde tanımlayıp…

Submit a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir