C# Değişkenler (Veri Tipleri) isimli bu makalede aşağıdaki sorulara cevap verilmektedir;

  • Değişken Nedir?
  • Değişkenler neden farklı türlere ayrılmıştır?
  • Değişken nasıl tanımlanır?
  • Değişken tanımlama kuralları nelerdir?

C# Değişkenler (Veri Tipleri) ile ilgili konu anlatımı ve uygulamalı için SendeKodYaz Youtube kanalımızdaki videolara aşağıdaki oynatma penceresinden erişebilirsiniz.

 

 

C# DEĞİŞKENLER (VERİ TİPLERİ) NEDİR?

Değişken programlamanın temel yapı taşıdır. Programın yürütülmesi esnasında ihtiyaç duyulan bilgileri hafızada saklamak ve gerektiğinde geri çağırmak için kullanılan kavramlardır. Bir değişken tanımlandığında ve program yürütüldüğünde bellekte bir alan ayrılır. Bilindiği üzere bellek bir başka deyişle RAM bilgilerin geçici olarak depolanmasını sağlayan donanım birimidir.

C# Değişkenler Nasıl Tanımlanır?

C# değişkenler üç adet parametrenin bir araya gelmesi ile tanımlanır.

1-Tür        : Saklanacak olan verinin hangi türde ve hangi aralıkta olacağını belirleyen kavramdır. Örneğin; 0-255 arasında pozitif tam sayı değerleri için BYTE türü kullanılmalıdır.

2-İsim      :  Basit tanımıyla verinin bellekte saklanacağı odacığın etiketi yani ismidir. Örneğin; bir hastanede her bir doktorun odasının kapısı üzerinde etiketi mevcuttur. Böylelikle biz aradığımız doktora bu etiket isimlerinden kolaylıkla ulaşabiliriz. Benzer şekilde bellekteki her verinin adresi mevcuttur. Bu adresleri kullanarak belleğe veri yazabilir yahut veriyi geri çağırıp kullanabiliriz.

3- Değer  : Tür ve isim belirlendiğinde bellekte veri için uygun bir alan ayrılır. Bellekte ayrılan bu alana daha sonra bilgi yazılır. Değer verme işlemi tanımlama yapılan komut satırında gerçekleştirilebileceği gibi programın akışı esnasında sonradan belirlenebilir.

Örnek:

Tür                                         İsim                                =       Değer

sbyte                                     sicaklik                          =       -5

string                                     tcno                               =       “22554477881”

sbyte    :  -128 ile +127 arasında değer alan, bellekte 1 byte alan kaplayan tam sayı değişken türüdür.

string    :  2 milyar karaktere kadar değer alır. Bellekte karakter sayısı x 2 byte alan kaplar.

Temsili Bellek Benzetişimi

int                                 maas                             =       2500

değişkenler
Temsili Bellek Benzetişimi

C# Değişkenler neden farklı türlere ayrılmıştır?

Programlama mimarisinin oluşturulması esnasında farklı türlerin tasarlanmasındaki amaç belleğin en verimli şekilde kullanılmasını sağlamaktır. Bilindiği üzere RAM (Random Access Memory) bilgisayarın en pahalı donanım birimlerinden biridir. Hafıza alanının kapasitesi düşük olmasına rağmen fiyatı oldukça yüksektir. Şayet türlerin sayısı az olsaydı belleği istediğimiz şekilde dizayn etme şansımız olmazdı. Bu durumda bellek kapasitesini gereksiz yere işgal etmiş olurduk.

Şimdi sorumuzun cevabını aşağıdaki örnekle açıklayalım;

byte      :              0-255 arasındaki pozitif tam sayı değerlerini alır. Bellekte 1 Byte alan kaplar.

ulong    :              0 – 18.446.744.073.709.551.615 arasındaki tam sayı değerlerini alır. Bellekte 8 Byte alan kaplar.

Yazacağımız programda bir kişinin yaşı üzerinde işlem yapacak olalım. Bir kişinin yaşını saklamak için byte değişken türü yeterli olacaktır. Aynı zamanda int değişken türünden de faydalanılabilir. Ancak byte yerine int değişken türünü kullanmak bellekteki 7 byte boyutundaki alanın gereksiz yere kullanılması ile sonuçlanacaktır. Bu durumu aşağıdaki bellek benzetişimi ile daha net bir şekilde analiz edelim.

Değişken nedir
Değişkenler neden farklı türlere ayrılmıştır?

C# Değişkenler ve Veri Türleri

C# değişkenler türleri (veri tipleri) sayısal, metinsel (string) ve mantıksal (boolean) olmak üzere üç grupta incelenmektedir.

1-C# Sayısal Değişken Türleri 

Sayısal türler 11 adet olup aşağıda listelenmiştir.

byte          sbyte

short        ushort

int             uint

long          ulong

float

double

decimal

ÖNEMLİ: sbyte değişken türü byte değişken türünün başına s harfi eklenerek oluşmuştur. ushort, uint ve ulong değişken türleri short, int ve long değişken türlerinin önüne u harf eklenerek   oluşmuştur. Peki ya bu s ve u harflerinin anlamı nedir?

S: SIGNED:   Türkçede işaretli anlamına gelir. Bilindiği üzere matematiksel işlemlerde pozitif tamsayıların önüne işaret konulmaz ancak negatif tamsayıların önüne – işareti konulur. Dolayısıyla başına s eklenen sbyte değişkeni pozitif değerler ile birlikte negatif değerleri de tutabilmektedir.

U:UNSIGNED:  Türkçede işaretsiz anlamına gelir. U ile başlayan ushort, uint, ulong gibi değişken türleri yalnızca pozitif tam sayı değerlerini tutabilir.

Bellekte saklanacak olan sayısal verinin negatif ya da pozitif olup olmayacağı ve değer aralığına tür seçimi yapılmalıdır. Bazı sayısal tipler yalnızca pozitif değerler almakta iken bazıları hem negatif hem pozitif değerler alabilir. Yine bazı sayısal tipler yalnızca tam sayı değerleri almakta iken bazıları ondalıklı değerleri de saklayabilir. Bu hususlar nazara alınarak veri saklama ihtiyacını karşılayan ancak bellekte de en az yer kaplayan bir sayısal tipi seçilmelidir.

C# Tam Sayı Değişken Tipleri

DEĞİŞKEN TÜRÜ ALDIĞI DEĞER ARALIKLARI BELLEKTE KAPLADIĞI BOYUT
Byte 0 ile255 arasında 1 Byte
sbyte -128 ile 127 arasında 1 Byte
short -32768 ile 32767 arasında 2 Byte
ushort 0 ile 65535 arasında 2 Byte
int -2.147.483.648 ile 2.147.483.647 arasında 4 Byte
uint 0 ile 4.294.967.295 arasında 4 Byte
long -9.223.372.036.854.775.808 ile 9.223.372.036.854.775.807 arasında 8 Byte
Ulong 0 ile 18.446.744.073.709.551.615 arasında değer alabilir. 8 Byte

C# Ondalıklı Değişken Tipleri

DEĞİŞKEN TÜRÜ ALDIĞI DEĞER ARALIKLARI BELLEKTE KAPLADIĞI BOYUT
float ±1.5×10-45  ile ±3.4×1038 arasında değer alabilir. Basamak hassasiyeti 7’dir. (Yazılan sayının sonuna f/F yazılmalı 3.12f) 4 Byte
double ±5.0×10-324 ile ±1.7×10308 arasında değer alabilir. Basamak hassasiyeti 16’dır. 8 Byte
decimal 29 basamaklı bir sayıyı tutabilir.

Tam sayılar için: ±79.228.162.514.264.337.593.543.950.335

Ondalık Say. için:±7.9228162514264337593543950335

16 Byte

Bir sayısal değişkene değer aktarımı yapılırken = atama operatöründen sonra veri yalın halde yazılır. Metinsel türlerde olduğu gibi veri tek tırnak veya çift tırnak işaretleri arasına yazılmaz. Aşağıda buna ilişkin örnek tanımlamalar görülmektedir.

int agirlik = 83
double maas = 2580,75
byte sicaklik = -8
Önemli Not: Yukarıdaki tablodan da anlaşılacağı üzere float değişken türüne değer verildikten sonra sonuna büyük yada küçük f harfi eklenmelidir. Aksi takdirde programın yürütülmesi esnasında hata oluşacaktır.

float  agirlik = 5,75f
float  maas = 1740,68F

2-C# Metinsel Değişken Türleri

Metinsel değişken türleri string ve char olmak üzere ikiye ayrılır.

String : 2 milyar karaktere kadar değer alabilen ve her bir karekter için bellekte 2 byte alan kaplayan veri tipidir. Üzerinde sayısal işlem yapılmayacak olan ve bir karakter boyutunu geçen metinsel veriler için kullanılır. TC Kimlik No, Ad, Soyad gibi veriler için kullanılabileceği gibi özgeçmiş gibi uzun metinler için de kullanılabilir. String bir değişkene değer verilerken veri çift tırnak içerisine yazılmalıdır. Aksi takdirde ilgili kod satırında hata oluşur.

string tcno = “11122233312”

string ozgeçmis = “1982 yılında Kütahya ilinin Domaniç ilçesinde dünyaya geldi. İlkokulu Domaniç Cumhuriyet İlköğretim Okulu’nda tamamladı. Ortaokulu 29 Ekim Cumhuriyet Ortaokulu’nda okudu. Daha sonra Konya Meram Fen Lisesi’ni kazanarak büyük bir başarıya imza attı. Lisans eğitimini İTÜ Makine Mühendisliğinde başarı ile bitirdi.”

Char: Character kelimesinin ilk dört harfinden oluşur. İsminden de anlaşılacağı üzere tek bir karakterlik veriyi saklayabilir. Bellekte 2 byte boyutunda bir hacim kaplar. Bir soruya verilecek olumlu ve olumsuz karakter sonuçlarını saklamak için kullanılabilir. Örneğin; Evli: E Bekar:B veya Evet:E Hayır:H gibi klavyeden girilebilecek tek karakterlik veriler için kullanılabilir. Benzer şekilde bir menü seçiminde de char veri tipinden faydalanılabilir. Örneğin; 1-Toplama 2-Çıkarma 3-Bölme 4-Çarpma işlemi gibi menü seçiminde kullanılabilir. Char veri tipine değer aktarımı gerçekleştirilirken veri tek tırnak içerisine yazılmalıdır.  

char cinsiyet = ‘E’
char menu = ‘2’

3-C# Mantıksal Değişken Türü

Programlamada mantıksal değişken türü olarak bool tipi kullanılır. İngilizce boolean kelimesinin ilk dört harfinden oluşmaktadır. Bu veri tipi yalnızca true (doğru) ve false (yanlış) değeri alabilir ve bellekte 2 byte yer kaplar. İki seçenekten ibaret olan bir veri üzerinde işlem yapılması istenildiğinde kullanılabilir.

bool sonuc = true
bool cevap = false

C# DEĞİŞKENLER ve TANIMLAMA KURALLARI

C# değişkenler tanımlanırken; değişken tanımlama kurallarına uyan, uygun değişken türünü seçen, değişkene anlaşılır isim veren bir c# programcısı emniyet kemerini takan sürücüye benzer.

C# değişkenler tanımlanmadan önce hangi türden bilgi içereceğinin bilinmesi gerekmektedir. Bu karar verildikten sonra uygun bir tür seçilerek bellek en verimli şekilde kullanılmalıdır. Bellekte saklanacak olan verinin sayısal veya metinsel bir veri olduğuna karar verilmelidir. Üzerinde matematiksel işlem veya mantıksal kıyaslama yapılması gereken ders notu, maaş gibi veriler için sayısal türler kullanılır. Ancak TC kimlik numarası, ad, soyad gibi veriler için metinsel tür kullanılır. Bir verinin yalnızca rakamlardan oluşuyor olması, o verinin sayısal türlerden birinde saklanacağı anlamına gelmez. Burada dikkat edeceğimiz husus üzerinden matematiksel işlem yapılıp yapılmayacağı ile ilgilidir. Örneğin; TC kimlik numarası rakamlardan ibarettir ancak bu veri üzerinden matematiksel işlem veya mantıksal kıyaslama yapılmayacağı için sayısal türler ile tanımlanması yanlış olacaktır.

C# değişkenler için tanımlama yapılırken önce tür, daha sonra boşluk karakterinden sonra değişken ismi yazılır. Eğer değişkene tanımlandığı satırda değer aktarılacaksa = operatörü, ardından uygun bir değer yazılır. Değer aktarılması işlemi programın akışı sırasında her hangi bir komut satırı ile doğrudan veya klavyeden de yapılabilir.

Örnek:

byte sicaklik ;
string tcno = ”22255566678” ;
int stokadeti = 486 ;

C# Değişkenler Nasıl İsimlendirilir?

Bellekte tutulacak değere göre tür belirlendikten sonra isim tanımlaması yapılmalıdır. C# değişkenler için verilecek isim ile saklanacak veri bir biri ile ilişkili olmalıdır. Bu şekildeki kullanım programın anlaşılırlığını kolaylaştırır. Anlaşılır isimlerin kullanılmaması ilerleyen zamanlarda oluşabilecek hataların çözümünü ve yapılacak düzenlemeleri zorlaştırır.

Örneğin; maaş verisi için double m=2560  yerine double maas=2560 şeklinde tanımlama yapılması daha doğru olur.

ÖNEMLİ NOT: C# programlama dili Türkçe karakter desteklemesine rağmen, isimlendirme yapılırken Türkçe karakterler yerine İngilizce karakterlerin kullanılması daha yerinde olacaktır. Her ne kadar C# programlama dili Türkçe karakter desteği sunuyor olsa da bazı programlama dilleri buna izin vermez. Programlamaya yeni başlayanların bu tavsiyeme uymalarını öneririm. Zira ilerleyen zamanlarda farklı programlama dillerine yönelebilir ve alışkanlıklarınızı terk etmekte güçlük çekebilirsiniz.

KURALLAR:

1-C# değişkenler isimlendirilirken bir harf ile başlamalıdır, bir rakam veya özel karakterle başlayamaz.

Örnekler:

Değişken İsmi Doğru / Yanlış
1yazili Yanlış
yazili1 Doğru

Kural 2: C# değişkenler isimlendirilirken boşluk bırakılamaz, bunun yerine alt çizgi karakteri kullanılabilir.

Örnekler:

Değişken İsmi Doğru / Yanlış
adi soyadi Yanlış
adisoyadi Doğru

 Kural 3: C# değişkenler isimlendirilirken sadece harfler, rakamlar ve alt çizgi karakteri kullanılabilir.

Değişken İsmi Doğru / Yanlış
adi+soyadi Yanlış
adi_soyadi Doğru

 Kural 4: C# değişkenler isimlendirilirken C# komutları kullanılmaz.

Örnekler:

Değişken İsmi Doğru / Yanlış
true Yanlış
public Yanlış

 Kural 5: C# değişkenler 255 karakterden daha uzun isim alamaz.

Örnekler:

Değişken İsmi Doğru / Yanlış
ogrencinin_annesinin_kizlik_soyadi Doğru

 NOT:

Aynı türden olan birden fazla değişken tanımını tek satırda araya virgül koyarak yapabiliriz.

Örnekler:

int kenar1,kenar2,kenar3
string adi,soyadi,telno,adresi

C# DEĞİŞKENLER VE  TANIMLAMA ÖRNEKLERİ

Değişken Tanımı ve Değer Atama Durum
byte sicaklik = -8 byte değişken türü 0-255 arası pozitif sayıları tutabilir.  sicaklik değişken tanımlama kurallarına uygundur ancak -8 değerini byte değişken türü tutamaz, sbyte değişken türü kullanılmalıydı.
string adi soyadi = “Mehmet Can” adi soyadi değişken isminde boşluk bırakıldığı için değişken tanımlama kurallarına uymaz.
char secim = a1 Değişken ismi uygun ancak char değişken türü yalnızca tek bir karakteri tutabilir, aynı zamanda değer tek tırnak için yazılmalıdır. char secim = ‘x’ şeklinde kullanılabilir.
int maas = 2500,85 Değişken ismi uygun ancak int değişken türü ondalıklı sayıları tutamaz. double maas = 2500,85  şeklinde kullanılabilir.

 

C# DEĞİŞKEN ÖRNEKLERİ SORULAR:

Değişken Tanımı Değişken Adı Değişken Değeri Sonuç
byte sicaklik=-5
sbyte sicaklik=-21
short 2yazili=74
ushort yazili2=74
int  maas=2750
uint sicaklik=-8
long agirlik=1500.86
ulong  arac fiyati=25600
float pirlanta_agirlik =15.684
double pirlanta_agirlik=15.684
decimal pirlanta+agirlik=15.684
bool cevap=true
char menu=1
char menu=’a1′
string  tcno=12345678901
string ikametadresi=”İsmail Bey Mah. Bahçelievler İstanbul”

 

C# DEĞİŞKEN ÖRNEKLERİ CEVAPLAR:

Değişken Tanımı Değişken Adı Değişken Değeri Sonuç
byte sicaklik=-5 Doğru Yanlış, byte değişken türü 0-255 arası değer alabilir Yanlış
sbyte sicaklik=-21 Doğru Doğru, sbyte -128 ile +127 arasında değer alabilir Doğru
short 2yazili=74 Yanlış, değişken adı rakamla veya özel karakterle başlayamaz Doğru, short -32768 ile +32767 arasında değer alabilir Yanlış
ushort yazili2=74 Doğru Doğru, ushort 0 ile 65535 arasında değer alabilir Doğru
int  maas=2750 Doğru Doğru, int -2.147.483.648 ile 2.147.483.647 arasında değer alabilir Doğru
uint sicaklik=-8 Yanlış Yanlış, uint 0-4.294.967.295 arasında değer alabilir Yanlış
long agirlik=1500.86 Doğru Yanlış, ulong tamsayı dışında ondalıklı değer alamaz Yanlış
ulong  arac fiyati=25600 Yanlış, değişken isminde boşluk olmaz. Doğru Yanlış
float pirlanta_agirlik =15.684 Doğru Doğru, float ondalıklı değerleri alabilir. Ancak değerin sonuna f harfi konulmalı Yanlış
double pirlanta_agirlik=15.684 Doğru Doğru, double ondalıklı değerleri alabilir Doğru
decimal pirlanta+agirlik=15.684 Yanlış, değişken isminde Özel karakter kullanılamaz. Doğru decimal ondalıklı değerleri alabilir. Yanlış
bool cevap=true Doğru Doğru, bool true ve false değerleri alabilir. Doğru
char menu=1 Doğru Doğru, char değişkenine tek karakterler veri aktarılabilir. Ancak değer tek tırnak içinde yazılmalı Yanlış
char menu=’a1′ Doğru Yanlış, char birden fazla karakter içeren veriyi tutamaz Yanlış
string  tcno=12345678901 Doğru Doğru, 2 milyar karaktere kadar veriyi tutabilir. Ancak değer çift tırnak içinde yazılmalı Yanlış
string ikametadresi=”İsmail Bey Mah. Bahçelievler İstanbul” Doğru Doğru Doğru

C# Form Dersleri ile ilgili makalelerimizi incelemek için tıklayınız.

SendeKodYaz Youtube kanalımızı incelemek ve abone olmak için tıklayınız.

Leave a comment