DEĞİŞKENLER

@ 28 Kasım 2003 tarihinde yazdı. Yazıya yorum yazın.
I. DEĞİŞKENLER
Uzunca bir zamandır, değişkenleri (variables) şu şekilde tanımlarız: “uygulamalarda verileri temsil etmek, işlemek ve saklamak için yapılan tanımlamalarda kullanılan sözcüklere değişken denir.A. DEĞİŞKENLERİ ADLANDIRMAK
Uygulama içinde ücret bilgisini temsil etmek için Ucret ya da HUcret gibi değişken tanımlanır. Buraya değerler atanır. Böylece değişken kullanılır. Ancak C# dilinde değişken tanımlamanın da bir kuralı vardır:Değişken adlandırma kuralları:1. Her değişken bir harf ya da bir alt çizgi karakteri ile başlar.

2. Birinci karakterin ardından harf, sayı ya da alt çizgi karakteri kullanılır.

3. Özel sözcükler (dilin komutları vb.) kullanılmaz.

İPUCU: Genellikle küçük harf ve büyük harfle başlayan değişken adlandırma kullanılır. Örneğin: PersonelUcreti gibi.

Örnek:

<code>void PersonelUcretHesapla();</code

İPUCU: Bu tür, her sözcüğün ilk harfinin büyük yazıldığı değişken adlandırma tekniğine PascalCasing denir.  

B. C#’ın ANAHTAR SÖZCÜKLERİ
Değişkenlerin oluşturulmasında esneğiz ama, anahtar sözcükler (reserved words) hariç. Peki, C#’ın bu anahtar sözcükleri neler?. Bazılarını hatırlatalım:

Byte, int, enum gibi değişken tanımlamalarında kullanılan sözcükler.

if, else, try, continue gibi yapısal programlama sözcükleri.

Using, void, public, const, struct gibi program yapısının ana sözcükleri.

C. DEĞİŞKEN TÜRLERİ
.NET dillerinin değişken tanımında bir diğer standart daha vardır. Buna Common Type System denir. CTS, programınızda tanımlayabileceğiniz yerleşik veri türlerini belirler. Bu nedenle bir değişkeni tanımlamak istediğinizde iki yolla karşılaşırsınız:

Value-type değişkenler (değer türünde kullanılan değişkenler)
Reference-type değişkenler (başvuru türünde kullanılan değişkenler)

Değer türleri veriyi doğrudan içerirler. Başvuru türü değişkenleri ise, veriye olan başvuruyu içerir. Başvuru türündeki değişkenlerin verisi bir örnek (instance) olarak saklanır.

Değer türündeki değişkenler yerleşik ve kullanıcı tanımlı olmak üzere iki tür veriye sahiptir.

Yerleşik veri türleri:

int, float vb.

Kullanıcı tanımlı veriler:

Enum, struct gibi yapılarla oluşturulur.

Yerleşik (built in) değer türündeki değişkenler basit ya da temel veri türleri olarak da tanımlanırlar.

Örnek:

int

ya da

System.Int32

Basit veri türleri:

Anahtar sözcük                                  Yapıcısı

sbyte                                                    system.sbyte

byte                                                      system.byte

short                                                     system.int16

ushort                                                   system.uint16

int                                                         system.int32

uint                                                       system.uint32

long                                                      system.int64

ulong                                                    system.char

float                                                      system.single

double                                                  system.double

bool                                                     system.boolean

decimal                                                 system.decimal

II. YERLEŞİK VERİ TÜRLERİNİ KULLANMAK
Yerel değişkenler (local variables) türü ve adıyla birlikte tanımlanırlar:

<code>int PersonelAdedi;</code>

Bir tanımlama içinde birden çok değişken tanımlanabilir:

<code>intPersonelAdedi, MemutAdedi;</code>

A. DEĞİŞKENLERE DEĞER ATAMAK
Bir değişkene değer atamak için = işareti kullanılır:

<code>int MemurAdedi = 30</code>

B. C# OPERATÖRLERİ
Program yazarken ifade (expression) denilen yapıları kullanırız. Örneğin bir değişkene bir değer atamak ya da bir değişkenin değerine göre bazı deyimleri kullanmak ya da kullanmamak gibi. İşte bu süreç içinde hep kullandığımız özel karakterler operatör olarak adlandırılır. Operatörler (İşleçler) çeşitli işlemleri yapmamızı sağlarlar.

Operatörleri işlevlerine göre belli kategoriler halinde ele alabiliriz:

Operatör Kategorisi                  Karakterleri

Atama Operatörleri                   =                      

Eşitlik Operatörler                    = =, !=

İlişkisel Operatörler                  <, >, <=, >=

Koşul Operatörleri                    &&, ||, ?:

Artırma Operatörleri                 ++

Eksiltme Operatörleri                –

Aritmetik Operatörler               *, /, -, +, %

Artırma ve Eksiltme İşlemleri

Toplam = Toplam + 1 gibi klasik artırma (üzerine ekleme) işlemleri için C#’ın C benzeri yapıları vardır:

<code>Toplam += 1;Toplam -= 1;</code>

C# bundan kısasına sahip:

<code>Toplam++;Toplam–;</code>

Burada ++ operatörü artırma için – ise eksiltme için kullanılır.

III. KULLANICI TANIMLI VERİ TÜRLERİNİ KULLANMAK
Bu konuda, yerleşik (builtin) değişken türlerinin yanı sıra, kullanıcı tanımlı (user defined) değişkenlerin yaratılmasına ve kullanılmasına bakacağız.

A. ENUMERATION
Enumeration bir değişkenin birden çok değer alması durumunda kullanılan bir tanımlama şeklidir.

<code>Enum Beden { Small, Medium, Large, XLarge }</code>

Burada Beden değişkeni 0, 1, 2 ve 3 değerleriyle de temsil edilebilir.

Ardından yaratılan Enumeration türü kullanılarak bir değişken tanımlanır:

<code>Beden BedenTuru;BedenTuru = Beden.Small</code>

Ya da aşağıdaki şekilde birinci beden bilgisine ulaşılır:

<code>BedenTuru = (Beden)0;</code>

Şimdi bu beden türünü yazdıralım:

<code>Console.Writeline(“{0}”, BedenTuru);</code>

B. STRUCT
Struct (Yapı) tanımlamaları ise yerleşik veri türlerinden oluşmuş grup tanımlamalarıdır. Bir öğrenci kaydını düşünün:

<code>Public struct Ogrenci{            string ad;

            int numara;

            string adres;

            string bolum;

            string babaadi;

}

</code>

Bu tür değişkenlere erişim ise şu şekilde yapılmaktadır:

<code>Ogrenci OgrenciKayit;OgrenciKayit.ad = “Ayşe Örnek”</code>

IV. BAŞVURU TÜRÜNE SAHİP DEĞİŞKENLERİ KULLANMAK
C# dilinde reference-type (başvuru türü) değişkenlerin kullanımı karmaşıktır. Çünkü bu tür değişkenlerin kullanımı özellikle uygulamanın etkin çalışmasını sağlar. Başvuru türü değişkenler veriye olan başvuruyu saklarlar. Bir tür pointer (işaretçi) kullanımını düşünün. Verinin kendisi başka bir yerde saklanır. Değişken ise ona başvuru adresini içerir.

Klasik C’de Pointer Kullanımı:

Pointer (işaretçi) değişken türü, bellekteki bir hücrenin adresinin saklandığı değişkendir. Diğer bir deyişle, işaretçi değişkenler verileri değil de, verilerin saklı olduğu bellek adreslerini içerir. İşaretçiler özellikle dinamik bellek kullanımı açısından kullanılırlar.

Klasik C dilinde bir değişkenin tanımlanması sırasında, değişken adının önüne * işareti konularak işaretçi tanımı yapılmış olur.

Örnek:

<code>int *isaretci;</code>

A. BAŞVURU DEĞİŞKENLERİNİ TANIMLAMAK
Başvuru türü değişkenler de değer türlü değişkenler gibi tanımlanırlar:

<code>Ogrenci Ogr;</code>

Burada Ogr değişkeni Ogrenci nesnesine bir başvurudur.

Ogrenci nesnesini başlatmak için new operatörü kullanılır. Bu yeni bir nesne yaratarak başvuru değişkeninde saklı nesne başvurusunu döndürür.

<code>Ogrenci Ogr;Ogr = new Ogrenci();</code>

Ya da daha kısa şu şekilde tanımlama yapılabilir:

<code>i Ogr = new Ogrenci();</code>

NOT: C#’de yaygın olarak kullanılan başvuru türü sınıflar vardır. Bunların kullanımını ek kaynaklardan çalışmak gerekecek. Bunların başında Execption, String sınıfları (classes) gelir.

V. DİZİLER[/]
Diziler (arrays), klasik anlamıyla aynı türdeki verilere tek bir adla erişmek için kullanılan bir kümedir. Teknik anlamda bir matris olarak açıklayabileceğimiz diziler, tıpkı matrisler gibi bir ya da daha çok boyutlu olabilir. C#’da da diziler aynı şekilde tanımlanır:
Tanımlama:
 
<code>tür ad [eleman sayısı];</code>
 
Örnek:
<code>string gunler[6];gunler[0]=”Pazartesi”;// dizinin birinci elemanı.</code>
 
 
C#’da verileri gruplamak için iki ana yöntem vardır:

Struct ve dizi

Struct tanımlamaları farklı türdeki verileri bir araya getirir. Diziler ise aynı türdeki elemanları bir dizin elemanıyla (sıyarla) işlememizi sağlar.

 <code>Public struct Ogrenci{            string ad;
            int numara;

            string adres;

            string bolum;

            string babaadi;

}
</code>

Örnek:

<code>

int [ ] dizi = new int [3]

System.Console.WriteLine(dizi[0]);

System.Console.WriteLine(dizi[1]);

System.Console.WriteLine(dizi[2]);

// dizinin bütün elemanlarını yazdırmak.</code>

 

 

Örnek:

<code>//Dizi elemanların ilk değer vermek (initializing)int [ ] dizi1 = new int [4] {0, 1, 2, 3 };</code>

ya da ;

<code>dizi1 = new int [4] {0, 1, 2, 3 };</code>