C# - Değişkenler
Bir değişken duruma göre kendisine değer atanan (set), kendisindeki değer okunan (get) veya her ikisi de yapılan üyedir. C# 'da, bir değişkenin tanımı aşağıdaki gibidir.
[veri tipi] [değişken adı] ;
Bir değişkenin yaratılması aşağıdaki gibidir.
string degiskenAdi;
Burada değişkene bir değer atanmamıştır. Kendisine bir yerde yaratıp başka bir yerde de değer atayabilirsiniz. Ayrıca değişkenlere aynı satırda hem yaratıp hem de değer atayabilmek mümkündür. Aşağıda örnek olarak gösterilmiştir.
[veri tipi] [değişken adı] = [değişken değeri] ;
int sayi = 37;
Bir değişkeni nerede veya kimlerin kullanmasını istediğimize göre görünürlük ekleyebiliriz.
[görünürlük] [veri tipi] [değişken adı] = [değişken değeri] ;
Aşağıdaki bunun bir örneği gösterilmektedir.
private string degiskenAdi = "Kitap";
Değişkenlerin yaratılması ve kullanılması ile ilgili bir örneğe bakalım.
using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string ad;
ad = "Ayşe"
string soyad = "Şimşek";
Console.WriteLine(ad + " " + soyad);
Console.ReadLine();
}
}
}
Görüldüğü gibi ilk değişkenimiz olan "ad" yaratılıp değer atanmamıştır. Yaratıldıktan sonra bir alt satırda kendisine değer atanmıştır. İkinci değişkenimiz olan "soyad" ise yaratıldığı satırda kendisine değer atanmıştır. Daha sonra ise + operatörü ile ( string için birleştirme ) değişkenler birleştirilmiş ve ekrana yazdırılmıştır.
Bu sefer matematik işlemleri için değişkenleri kullanalım.
int sayi1, sayi2;
Console.WriteLine("Sayi girin:");
sayi1 = int.Parse(Console.ReadLine());
Console.WriteLine("Bir sayi daha girin");
sayi2 = int.Parse(Console.ReadLine());
Console.WriteLine("Toplam: " + (sayi1 + sayi2));
Console.ReadLine();
Yukarıdaki örnekte sayi1 ve sayi2 aynı tip değişken oldukları için "int sayi1, sayi2;" şeklinde yaratabildik. Daha sonra ilk sayının girilmesi istendi ve girilen sayı "int.Parse" fonksiyonu ile int (tam sayı) tipinde bir değişkene atandı. Yani tip convert (dönüştürme) yapıldı. İkinci sayımızda da aynı işlem uygulandı. Daha sonra ekrana (sayi1 + sayi2) ile toplam yazdırıldı. Unutulmaması gereken şey + operatörü "string" tipler için birleştirme "int" tipler (ve diğer matematiksel değişken türleri) için ise toplama görevi gördüğüdür.
Değişkenlerin Kapsama Alanları
Şimdiye kadar, yalnızca aynı süslü parantez arasında tanımlanan ve kullanılan değişkenler olan private (yerel) değişkenleri kullandık. C# 'da, aynı süslü parantez arasında tanımlanan bir değişken bu alanın dışında kullanılamaz. Bu yüzden buna private denmektedir. Aşağıdaki örneği inceleyelim..
using System;
namespace Degiskenler
{
class Program
{
private static string degisken1 = "degisken1";
static void Main(string[] args)
{
string degisken2 = "degisken2";
Console.WriteLine(degisken2);
Console.WriteLine(Program.degisken1);
Fonksiyon1();
}
static void Fonksiyon1()
{
Console.WriteLine(Program.degisken1);
}
}
}
"degisken1" degişkeni "class Program" a ait süslü parantez içinde fakat "Main" ve "Fonksiyon1()" ait süslü parantezlerin dışındadır. Yani hiyerarşide "Main" ve "Fonksiyon1()" ile aynı seviyededir. Bu yüzden "class Program" içindeki her yerde kullanılabilinir. "degisken2" degiskeni ise "Main" içinde yaratıldığından buranın dışında kullanılamaz. Örnek olarak bu değişkeni "Fonksiyon1()" içinde kullanamazsınız.
Bir değişkenin nerede bildirildiğini ayırt etme kavramına kapsam belirleme (scope) denir. Değişkenlerde kapsam karmaşasını önlemek için görünürlük türleri yaratılmıştır. Gelişmiş projelerde bu türleri kullanmak zorunluluk haline gelmiştir. Aksi takdirde karmaşıklığın içinde kaybolursunuz. Görünürlük dersinde bu konudan bahsedilmiştir.