İlginizi Çekebilir
C# Veri Tipleri Nelerdir?
  1. Ana Sayfa
  2. C#
  3. C# Veri Tipleri ve Değişken Tanımlama

C# Veri Tipleri ve Değişken Tanımlama

Bir dil öğrenirken ilk adımımızı değişken tanımlayarak ve o dilde bulunan ilgili veri tiplerine bakarak sağlarız. Bu yüzden bu yazımda C# veri tipleri ve değişken tanımlama konusunda bazı açıklamalar gerçekleştireceğim. C# öğrenmeye başlarken ilk dikkat ettiğim nokta Java ile yakınlık derecesi oldu bu yüzden Java’da veri tipleri konuma daha önce göz attıysanız C# Veri tipleri ve Değişken Tanımlama konusunda zorluk çekmezsiniz.

Nesne tabanlı programlama dillerinin içerisinde bulunan stack ve heap kavramı C# dili içinde geçerli bir unsurdur. Stack ve Heap kavramını teorik olarak C# üzerinde form ekranlarında çalışma başladığımız zaman daha detaylı anlatacağım. O zamana kadar aklınızda bir şeyler canlanması için aşağıdaki görsele göz atabilirsiniz.

C# Stack ve Heap Ayrımı
C# Stack ve Heap Ayrımı

Stack ve Heap konusunu sınıf ve nesne kavramını anlatırken daha detaylı göreceğiz. Şu an için sadece değişkenlerin belleğin stack (yığın) kısmında tutulduğunu ve referans tipler ile oluşturulan nesneler ise belleğin heap alanında tutulduğunu bilseniz yeterli olacaktır.

C# Değişken Tanımlama

Yapacağımız konsol uygulamalarında, form uygulamalarında veya çeşitli algoritma temellerinde sıklıkla kullanacağımız kod dizilerinden birisi değişken tanımlamadır. Değişkenler, verilerin kimliğidir şeklinde bir açıklama yapsam yanlış olmayacaktır. Verilerimize daha kolay ulaşabilmek ve kullanmak için çeşitli değişkenler tanımlarız. Bir değişken tanımlamak için gerekli formül şu şekildedir: Özel anahtar kelimesi + Veri Tipi (int, string, boolean, vb.) + Değişken adı;

C# üzerinde değişken tanımlama aslında bu kadar basit. Bu vermiş olduğum formülü biraz daha açıp detaya inersem şu şekilde anlatımımı devam ettirebilirim;

#1 Özel anahtar kelimesi olarak belirttiğim alan üzerinde herhangi bir erişim belirleyici (public, private, protected, vb) kullanabiliriz. Bu erişim belirleyiciler hakkında ilerleyen zamanlarda ayrı bir konu hazırlayacağım.
#2 Formülün ikinci alanında değişken üzerinde hangi veri tipine (int, string, object, vb) ait veri tutacaksak onu belirliyoruz.
#3 Son kısımda ise değişkenimizin kimlik vazifesini görecek bir isim belirliyoruz.

Gördüğünüz üzere değişken tanımlamak çok basit bir işlemdir. Değişken tanımlama konusunda bir örnek tanım oluşturarak akılda kalıcılığı arttıralım.
object xyz; // xyz isminde object veri tipinde bir değişken tanımlaması.
Bu örnek olarak vermiş olduğum değişken tanımlamamızın bir değeri yoktur, değer atamadığım için bellek üzerinde herhangi bir yer kaplamaz.

C# Değişken Tanımlama Kuralları

Basit bir formülü olsada belli başlı uymamız gereken kurallar bulunmaktadır. Bu kuralları aşağıda maddeler halinde sizlerle paylaşacağım.

  • Değişken isimlerinde boşluk bulunmamalıdır.
    int islem sonucu = 5321017; // Hatalı bir kullanım örneği.
    Bu tarz uzun değişken isimlerini daha anlaşılır yapmak isteyeceğimiz zamanlarda aralarına _, $ gibi bazı özel işaretler kullanabiliriz.
    int islem_sonucu = 5321017; // Doğru bir kullanım örneği.
  • Değişken isimlerimiz rakam veya özel bir karakter ile başlayamaz.
  • Tanımlayacağımız her değişken için bir veri tipi belirlenmelidir.
  • C# değişkenleri, değer ataması yapılmadan yazdırılma işlemi gerçekleştirilmez.
    object degiskenismi;
    Console.Write(degiskenismi); // Tanımladığımız değişkenin bir değeri olmadığını ileten hata ile karşılaşırız.
  • Değişken tanımlarken özel komutlar (static, void, class, vb) değişken ismi olarak kullanılmaz.

C# Veri Tipleri

C# değişken tanımlaması için gerekli formülü ve tanımlarken dikkat edeceğimiz konuları öğrendiğimize göre bu değişkenlere vereceğimiz veri tiplerini öğrenmeye başlayabiliriz. Toplam üç adet veri tipi başlığımız vardır. Bu veri tipleri Primitive, referans ve null veri tipleri olarak ayrılmaktadır.

C# Primitive Veri Tipleri
C# Veri Tipleri

Primitive Veri Tipler

İlkel veri tipleri olarak da bilinen primitive veri tipleri, genel olarak sayısal verileri tutmak için kullanırız. Tuttukları sayısal tipler ondalıklı ve tam sayı olmak üzere 2’ye ayrılır. Sayısal verilerin yanında tek karakter tutmak için ya da true-false veri tipleri için primitive veri tipleri kullanırız.

Tam sayı türünde eleman tutan veri tipleri şu şekildedir;

  • Byte: Bellek üzerinde 1 byte yer kaplar. 0’dan başlayarak 255 değerine kadar olan tam sayı aralığında değerler alabilir.
  • Sbyte: Byte gibi bellek üzerinde kapladığı yer aynıdır. -128 ile 127 arasında bulunan tam sayı değerlerini alabilir.
  • Short: 2 Byte boyutundadır. -32768 ile 32767 arasında bulunan tam sayı değerlerini alır.
  • Ushort: Sbyte gibi pozitif değerleri alır. 0 ile 65535 arasında bulunan tam sayıları alır.
  • Integer (int): Herkesin sıklıkla kullandığı veri tipidir. Bellek üzerinde 4 Byte yer kaplar. -2³¹ ile 2³¹ -1 arasında bulunan tam sayıları alır.
  • Uint: Integer veri tipinin pozitif değerler alan halidir. 0 ile 2×2³¹-1 arasındaki değerleri alır.
  • Long: Bellek üzerinde 8 Byte yer kaplar. Integer veri tipinden daha uzun tam sayı değerlerini bünyesinde tutabilir. -2⁶³ ile 2⁶³-1 arasındaki değerler tanımlanabilir.
  • Ulong: 0 ile 2×2⁶³ arasındaki tam sayıları tutan veri tipidir.

Ondalıklı sayı türünde eleman tutan veri tipleri şu şekildedir;

  • Float: Bellekte 4 Byte yer kaplar. Ondalık sayı türünde eleman tutan veri tipidir. -3.4*10³⁸ ile 3.4*10³⁸ arasında bulunan değerleri alır.
  • Double: Bellek üzerinde 8 Byte yer kaplar. Ondalık sayı türünde elemanlar alan veri tipidir. -1.7*10³⁰⁸ ile 1.7*10³⁰⁸ arasındaki değerleri alır.
  • Decmial: Ondalıklı elemanları tutan veri tipidir. Virgülden sonra 28 basamağa kadar destekleyen 128 bit uzunluğuna sahip kesirli bir sayımız var ise kullanacağımız veri tipidir.

Diğer C# Primitive veri tipleri şu şekildedir;

  • Char: Tek karakter türünde değerler alır. Tanımlamaları oluştururken yalnızca bir rakam, işaret veya harf kullanabiliriz. Yapılan tanımlamalar diğer veri tiplerinin aksine tek tırnak arasında yapılmalıdır.
  • Boolean: Diğer veri tiplerinin aksine sadece 2 adet değer alır. Bu değerler true veya false’dir. Bellek üzerinde bir bit yer kaplar. Mantıksal veri tipleri olarak da bilinir.

Primitive (ilkel) veri tipleri yukarıda belirttiğim gibidir. Hepsinin görevi ve kullanım alanları tanımlardan da anlaşılacağı üzere farklıdır.

Referans Veri Tipleri

Referans veri tipleri belleğin heap alanında tutulur. Class, Array ve Interface olarak tanımlayabileceğimiz 3 referans tipi bulunmaktadır. Referans olarak tanımlanan veri tiplerinde, ilkel veri tiplerden farklı olarak gerçekleştirilecek işlemler değişkenin kendisi ile gerçekleştirilir. Tanımlama yaparken new anahtar sözcüğünü kullanırız.

Nesne tabanlı programlama konularına gireceğimiz zaman referans veri tiplerini daha detaylı göreceğiz.

Null Veri Tipi

C# Veri Tipleri arasında Nullable veri türleri olarak ayrı bir konu başlığı bulunan veri tipidir. Bu C# veri tipleri herhangi bir değişkenin elemana sahip olmadığı durumlarda kullanılır.

int? degiskenismi = null; // Null veri tipi tanımlamasına bir örnek

Akılda kalıcılığı daha iyi arttırabilmek için C# Veri tipleri konusunda ve değişken tanımlamasında bir örnek kod dizisi oluşturarak konsol ekranımıza yazdırma işlemini gerçekleştirelim.

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Primitive Veri Tipleri
            // -> Tam Sayı Alanlar:
            byte myByte = 255;
            sbyte mySbyte = -128;
            short myShot = -32767;
            ushort myUshort = 65535;
            int myInt = -15688;
            uint myUint = 15688;
            long myLong = -32574698;
            ulong myUlong = 32574698;
            // -> Ondalıklı Sayı Alanlar:
            float myFloat = 64.231321f;
            double myDouble = 1233.875157421;
            decimal myDecmial = 127.52132M;
            // -> Diğer Primitive Veri Tipleri:
            char myChar = '-';
            Boolean myBoolean = true;
            // Referans Veri Tipleri:
            string myWeb = "www.emrecelen.com.tr", myText = "Merhaba!";
            // Konsola Yazdırma Komutları:
            Console.WriteLine(myText+"\n"+new string('-', 20)); // 20 Adet "-" işaretini koyacak yan yana.
            Console.WriteLine("-> Tam Sayılar:"+"\nByte Değeri: " + myByte + "\t SByte Değeri: " + mySbyte + "\nShort Değeri: " + myShot + "\tUShort Değeri: " + myUshort);
            Console.WriteLine("Integer Değeri: "+myInt+"\t UInteger Değeri: "+myUint+"\nLong Değeri: "+myLong+"\tULong Değeri: "+myUlong);
            Console.WriteLine(new string('-', 20)+"\n-> Ondalıklı Sayılar:");
            Console.WriteLine("Float Değeri: "+myFloat+"\nDouble Değeri: "+myDouble+"\nDecmial Değeri: "+myDecmial);
            Console.WriteLine(new string('-', 20));
            Console.WriteLine("Booelan Değeri: "+myBoolean+"\nWeb Sitem " + myChar + " " + myWeb);

        }
    }
}

Kod Çıktısı:

C# Veri Tipleri ve Değişken Tanımlaması
C# Veri Tipleri

C# Veri Tipleri ve Değişken Tanımlama konumuzun sonuna geldik. C# Referans veri tipleri konu başlığı nesne tabanlı programlama konusuna geçtiğimiz zaman detaylandıracağımdan dolayı şu an için fazla uzun tutmadım. İlerleyen zamanda gerçekleştireceğim güncellemeden haberdar olmak, konu işleyişi hakkında öneride bulunmak ve aklınıza takılan soruları benimle iletişime geçerek sormak isterseniz aşağıda bulunan “yorum yap” kısmından benimle iletişime geçebilirsiniz.

Yorum Yap

Yazar Hakkında

Yazmayı, öğrenmeyi, öğrendiklerini paylaşmayı , kodlamayı ve günün birinde Yönetim Bilişim Sistemleri Uzmanı olmanın hayalini kuran birisiyim.

Yorum Yap

Yorumlar (1)

  1. 3 yıl önce

    Çok aydınlatıcı bir içerik olmuş emeğinize sağlık bizde arkadaşlar arasında konuşuyorduk bu denli bir duzeyda anlatan bir site var mı diye varmış demek ki takip te kalacağım…

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir