3 - C# Veri Tipleri



Veri Tipleri

İki farklı değişken türü mevcuttur, bunlar Değer türü ve Referans türü olarak adlandırılır. Değer tipi değişkenler stack adı verilen bölümlerde saklanır, Referans türü değişkenler ise heap adı verilen bölümlerde saklanır. Değer türü veriler taşıdıkları veri türüne göre bellek üzerinde yer kaplayan değişkenlerdir. Erişimi çok hızlıdır ve bellekte kapladığı yer azdır. Stack içerisine saklanacak verini boyutu bilinmelidir. Heap içerisine saklanan verinin ise boyutu dinamik olarak belirlenir ve çalışma zamanında kullanımına göre değişkenlik gösterir. Stack bölgesindeki verinin kullanımı bittikten sonra otomatik olarak silinir. Heap gölgesindeki veriler ise kullanımı bittikten sonra garbage collector yardımı ile veriyi bellekten siler. Stack veri bölümlerindeki işlemler heap veri bölümündeki işlemlere göre daha hızlı gerçekleşir. Referans türü değişkenleri veriyi heap içerisinde ve bu değişkene ulaşmak için gereken referans veri adresi ise stack bölümünde saklanır.


Referans türü örnek:


string degiskenAdi = "Merhaba";







Değer türü örnek:


int a = 13;


 







Değer Tipleri

Değer tipleri aşağıda bulunan tablodaki gibidir.



Referans Tipleri


Veri tiplerinin kısaca özellikleri şunlardır:

Integer Veri Tipi

+2147483647 ile -21474836478 sayıları arasında değer alır. 

32 bit yer kaplar


int number1 = 2147483647; 


Long Veri Tipi 

10²⁰ ile -10²⁰ sayıları arasında değer alır.

 64 bit yer kaplar.


long number2 = 9223372036854775808; 


Short Veri Tipi

+32767 ile -32768 sayıları arası değer alır.

16 bit yer kaplar. 


short number3 = 32767; 


Byte Veri Tipi

0 ile 255 sayıları arasında değer alır.

8 bit yer kaplar.


byter number4 = 255;


Bool Veri Tipi 

"true" ile "false" yani 0 ile 1 değerlerini alır. 

1 bit yer kaplar.


bool condition = 1; 


Char Veri Tipi

Bu veri tipi "unicode" karakterleri değer olarak alır.

16 bit yer kaplar.

Char veri tipini tanımlarken daima ' ' kullanmalıyız.


char character = 'A'; 


Double Veri Tipi 

float veri tipinden daha büyük veya daha küçük sayılarla çalışmamızı sağlar.

Ondalık ve tam sayılarla çalışmamızı sağlar. 

64 bit yer kaplar. 


double number = -123.12312;


Float Veri Tipi

-3.402823e38 - 3.402823e38 aralığında değer alır.

32 bit yer kaplar.

Float veri tipini tanımlarken sayının sonuna F yada f karakteri getirilir.


float number = 5.2f; 


Object

Object değişken türü ile bütün verli tanımlanabilir. 


object isim = "Ali"; 

object yas = 12; 

object karakter = 'F' 


Decimal Veri Tipi 

Float veri tipi virgülden sonra 6, double veri tipi virgülden sonra 15, decimal veri tipi ise virgülden sonra 28 karakteri tam sayı olarak saklar. 

 128 bit yer kaplar.


 decimal number6 = -323.112312312312312m;


Var Keyword

Kullanımı object türüne benzer. 

Bir değişkene var ile bir veri tipi tanımlarsak, o değişkenin veri tipi otomatik olarak aldığı değerin veri tipi olur.

Var ile tanımladığımız değişkenlere ilk değer ataması zorunludur.

Örnek: 


var number1 = 11;

Console.Write(number1);

Console.ReadLine(); 

Çıktı: 

11  


Digit Seperator 

Digit seperator rakamları basamaklarına ayırarak daha rahat kullanmamıza olanak sağlayan bir özelliktir.

Örnek:


int c = 0b0001_1100_1111_1101;

Bu c değeri ekrana 7421 değerini döndürecektir. Gördüğünüz gibi rakamları daha rahat ayır edebiliyoruz.

int b = 12_123_123; aynısı bu örnek içinde geçerlidir.


Global Ve Local Değişkenler

Değişkenler tanımlandıkları yere göre 2'ye ayrılır. Bunlar local değişlenler ve global değişkenlerdir. 

Lokal değişkenler bir kod bloğunun veya metodun içine tanımlanır ve sadece tanımlandığı yerde kullanılabilir. 

Örnek: 


static void Main(string[] args) 

{

        {

                static void Main(string[] args)

        {

        Console.WriteLine(a);

        Console.ReadLine();

}

a'yı konsola yazdırmaya çalıştığımız hata alacağız çünkü a sadece kod bloğunun içinde tanımlıdır.

Onun yerine kodu böyle düzenlersek sorunsuz çalışacaktır.



static void Main(string[] args)

{

        {

                int a = 33;

                Console.WriteLine(a);

        {

        Console.ReadLine();

}




Global değişkenler ise tanımlandıkları yere göre bir kod bloğunun, metodun ya da sınıfın tamamında geçerlidir.


Örnek:


class Program

{

        public static int k;

        static void Main(string[] args)

        {

                {

                        k = 21;

                }

                Console.WriteLine(k);

                Console.ReadLine();

        }

}

Çıktı:

21

Gördüğünüz gibi globalde tanımlanan değişkenler kendi ve alt kod bloklarında sorunsuz bir şekilde kullanılabiliyor. 

Not: Globalde tanımladığımız k değişkenine main metonu içerisinde herhangi bir değer atamazsak k değişkeni varsayılan değerini alacaktır ve program herhangi bir hata vermeyecektir, ama k değişkenini main metodu içinde int k; şeklinde tanımlayıp başlangıç değeri vermeyip, metot içerisinde herhangi bir değer atamazsak k değeri herhangi bir varsayılan değer almaz ve program hata verir.





Yorumlar