C# Veri Tipleri Ne İşe Yarar ? Nelerdir ? Veri Tiplerinin Özellikleri Nelerdir ?

C# öğrenmeye öncelikle veri tiplerini öğrenerek başlayabilirsiniz. Veri tipleri ne iş yarar ? C# ta kullanılan veri tipleri kaça ayrılır ve bunların özellikleri nelerdir ? Temel C# veri tipleri nelerdir ? Bu yazımızda tüm bu soruların cevaplarını bulabilirsiniz. Veri Tipleri C# ‘ın en temel konuları arasındadır. Eğer bu dili öğrenmek istiyorsanız C# veri tipleri konusuna önem vermenizi tavsiye ederiz.

C# dilinde veri tipi (data type), bir değişkenin veya ifadenin hangi türde veri saklayabileceğini ve nasıl işleneceğini belirten bir özelliktir. Veri tipleri, programların bellekte verileri nasıl depolayacağını, hangi işlemleri gerçekleştirebileceğini ve sonuçları nasıl yorumlayacağını belirler. C# dilindeki veri tipleri, programın güvenilirliğini ve performansını artırmak için tür güvenliğini sağlar.

c#-veri-tipleri-neler c# veri tip aciklamalari

C# Veri Tipleri Özellikleri

Tür Güvenliği: C#, güçlü bir şekilde tür denetimi yapan bir dildir. Bir değişkeni tanımladığınız zaman yalnızca o türdeki verileri alabilir yani int tipinde bir veri tipi atanırsa sadece sayı değerleri verilebilir. Kelime ya da harflerden oluşan string bir değer verilemez.

Bellek Yönetimi: Her veri tipinin bellekte kapladığı alan farklıdır. Veri tipleri belirlenirken programda optimum fayda alabilmek adına doğru veri tiplerini kullanmak önemlidir. Bellekte fazla yer kaplayan bir veri tipinin içine tek bir rakam ya da tek bir harf değeri vermek bellekte boşa yer israfı sağlar ve program optimize edilmemiş olur. Örneğin, int 4 byte kullanırken, double 8 byte kullanır. Bu sayede, belleğin verimli kullanımı sağlanır.

C# Veri Tipleri Kategorileri

C# ta veri tipleri , bellekte saklanma durumlarına göre ikiye ayrılır.

1- Bir Değer Tipleri : Bu tipteki veriler doğrudan stack bellekte saklanır. int, float, bool, char gibi temel veri tipleri değer tipleridir.

2- Referans Tipler : Bu tipteki veriler heap bellekte saklanır ve stack bellekte yalnızca bu verilere işaret eden bir referans bulunur. string, class, object, array gibi tipler referans tipleridir.

Bura da Stack bellek ve Heap bellek terimleri karşımıza çıkmaktadır. Anlaşılacağı üzere iki çeşit bellek vardır. Şimdi bu bellekler hakkında bilgi verelim.

heap ve stack bellek

Stack Bellek Nedir ?

Stack bellek , özellikle kısa süreli, yerel değişkenleri ve metot çağrılarında kullanılan verileri saklamak için kullanılır. Aşağıda stack bellekle ilgili temel bilgiler yer alır:

Yapısı: Stack, “Last In, First Out” (LIFO) prensibiyle çalışır. Yani son eklenen veri, ilk önce işlenir.

Hız: Bellekteki verilerin çok hızlı bir şekilde okunup yazılmasını sağlar. Bu yüzden işlemler stack üzerinde oldukça hızlıdır.

Kapsam: Yalnızca metot çalıştığı sürece aktif olan değişkenler burada saklanır. Metot tamamlandığında, stack’teki ilgili alan serbest bırakılır.

Kullanımı: Değer tipleri (int, float, char gibi) ve metotlarda tanımlanan yerel değişkenler burada saklanır.

Stack Bellekte Tutulan Veri Tipleri

C# veri tiplerinde Stack bellekte tutulanlar arasında özellikle “int” en çok kullanılan veri tipidir. İnt 1,2,3 gibi tam sayıları bellekte saklamaya yarar. Eğer bellekte saklanmak istenen ondalıklı bir sayı ise daha çok decimal veri tipi kullanılmaktadır. İki seçenekli durumlarda veri tipi lazım olduğunda ise bool veri tipi kullanılmaktadır. Aktif olup olmama durumları buna örnek verilebilir.

int (Tamsayı)

  • Tanım: Tam sayı değerlerini saklar (ondalık kısmı olmayan sayılar).
  • Boyut: 4 byte
  • Değer Aralığı: -2,147,483,648 ile 2,147,483,647 arasında
  • Örnek Kullanım: int sayi = 100;

decimal

  • Tanım: Parasal değerlerde hassasiyet gerektiren durumlarda kullanılır.
  • Boyut: 16 byte (128 bit)
  • Aralık: Yaklaşık ±1.0 x 10^-28 ile ±7.9 x 10^28 arasında
  • Özellik: Daha yüksek hassasiyetle ondalık işlemler yapar.
  • Örnek Kullanım:csharpKodu kopyaladecimal fiyat = 199.99m;

float (Kayan Noktalı Sayı)

  • Tanım: Ondalık değerler için kullanılır.
  • Boyut: 4 byte
  • Değer Aralığı: Yaklaşık ±1.5 x 10^−45 ile ±3.4 x 10^38 arasında
  • Özellik: Sonuna f eklenir (float sayi = 10.5f;).
  • Örnek Kullanım: float oran = 3.14f;

double (Çift Hassasiyetli Kayan Noktalı Sayı)

  • Tanım: Float tipine göre daha hassas ondalık sayılar için kullanılır.
  • Boyut: 8 byte
  • Değer Aralığı: Yaklaşık ±5.0 x 10^−324 ile ±1.7 x 10^308 arasında
  • Örnek Kullanım: double agirlik = 72.456;

bool (Mantıksal Tip)

  • Tanım: Doğru veya yanlış değerleri saklar (true veya false).
  • Boyut: 1 byte
  • Örnek Kullanım: bool aktifMi = true;

char (Karakter)

  • Tanım: Tek bir karakteri saklar.
  • Boyut: 2 byte
  • Örnek Kullanım: char harf = 'A';

byte

  • Tanım: Pozitif tam sayı değerlerini saklar.
  • Boyut: 1 byte
  • Değer Aralığı: 0 ile 255 arasında
  • Örnek Kullanım: byte yas = 25;

sbyte (Signed Byte)

  • Tanım: Hem pozitif hem de negatif tamsayıları saklar.
  • Boyut: 1 byte
  • Değer Aralığı: -128 ile 127 arasında
  • Örnek Kullanım: sbyte derece = -20;

short

  • Tanım: Küçük tamsayıları saklamak için kullanılır.
  • Boyut: 2 byte
  • Değer Aralığı: -32,768 ile 32,767 arasında
  • Örnek Kullanım: short kucukSayi = 1500;

ushort (Unsigned Short)

  • Tanım: Pozitif küçük tamsayıları saklar.
  • Boyut: 2 byte
  • Değer Aralığı: 0 ile 65,535 arasında
  • Örnek Kullanım: ushort pozitifKucukSayi = 30000;

long

  • Tanım: Büyük tamsayı aralıkları için kullanılır.
  • Boyut: 8 byte
  • Değer Aralığı: -9,223,372,036,854,775,808 ile 9,223,372,036,854,775,807 arasında
  • Örnek Kullanım: long buyukSayi = 1234567890;

ulong (Unsigned Long)

  • Tanım: Pozitif büyük tamsayıları saklar.
  • Boyut: 8 byte
  • Değer Aralığı: 0 ile 18,446,744,073,709,551,615 arasında
  • Örnek Kullanım: ulong pozitifBuyukSayi = 9876543210;

Heap Bellek Nedir ?

Heap bellek, C# veri tipleri ile uzun süreli veya büyük veri nesnelerini saklamak için kullanılan bir bellek türüdür. Genellikle referans tipindeki veriler burada saklanır.

Yapısı: Heap daha geniş bir alan sunar ve veriler burada düzensiz olarak depolanır.

Hız: Heap bellekteki verilere erişim stack’e göre daha yavaştır. Bunun nedeni, verilerin heap’te dinamik olarak yönetilmesi ve yönetim işlemlerinin daha karmaşık olmasıdır.

İlginizi Çekebilir : C# Nedir? Ne İşe Yarar ? C# Öğrenmek Zor Mu ? Neden C# Öğrenmeliyim ?

Kapsam: Heap’teki veriler, yalnızca ilgili referans kalmadığı durumda “çöp toplayıcı” (garbage collector) tarafından temizlenir. Bu nedenle stack gibi belirli bir kapsamda otomatik olarak serbest kalmaz.

Kullanımı: Referans tipleri (string, array, class nesneleri gibi) heap bellekte saklanır. Stack’te yalnızca heap’teki verilere işaret eden bir referans tutulur.

Heap Bellekte Tutulan Veri Tipleri

    Bunlar arasında özellikle “String” veri tipi en önemlisidir. Her türlü metinsel veriler string tipi temsil eder. String dışında , Class ve Array larda önemlidir.

    string (Karakter Dizisi)

    • Tanım: Karakter dizisi (metin verisi) saklar.
    • Boyut: Karakter sayısına göre dinamik olarak değişir.
    • Özellik: Referans tiptir ve immutable (değiştirilemez) yapıdadır.
    • Örnek Kullanım: string ad = "Ali";

    object

    • Tanım: C# veri tiplerinin temel sınıfıdır. Her veri tipi object türünde saklanabilir.
    • Özellik: object referans tipidir ve bellekte her türlü veriyi saklayabilir.
    • Örnek Kullanım: object veri = 42; veya object metin = "Merhaba";

    dynamic

    • Tanım: Çalışma anında veri türü belirlenir.
    • Özellik: Derleme anında tür kontrolü yapılmaz; çalışma zamanında dinamik olarak belirlenir.
    • Örnek Kullanım: dynamic veri = "Merhaba"; veri = 10; // Tür değişebilir.

    Array (Dizi)

    • Tanım: Aynı veri tipinden birden fazla öğeyi saklar.
    • Özellik: Heap bellekte saklanır ve referans tipidir.
    • Örnek Kullanım: int[] sayilar = {1, 2, 3};

    class (Sınıf)

    • Tanım: Nesne tabanlı programlama için kullanılır ve özellikler ile metotlar tanımlanır.
    • Özellik: Sınıf nesneleri heap’te saklanır.
    • Örnek Kullanım: class Ogrenci { public string Ad { get; set; } }

    interface

    • Tanım: Sadece metot imzalarını tanımlar ve herhangi bir kod içermez.
    • Özellik: Heap’te referans olarak saklanır.
    • Örnek Kullanım: interface IOgrenci { void DersAl(); }

    delegate

    • Tanım: Bir metodu temsil eden referans tipidir.
    • Özellik: Metotları işaret eden referanslar heap bellekte saklanır.
    • Örnek Kullanım: delegate void Eylem();

    Yukarıda saydığımız C# veri tipleri dışında bir de “var” veri tipinden bahsetmemiz gerekiyor. “var” veri tipi bir string değer alabildiği gibi bir integer değer de alabilmektedir. Çünkü var, derleyicinin değişkenin veri tipini atanan değere göre otomatik olarak belirlemesini sağlayan bir anahtar kelimedir. Türü açıkça belirtmek yerine var kullanmak kodun okunabilirliğini artırabilir.

    Örnek kullanımlarını aşağıda bulabilirsiniz :

    var sayi = 10;            // int
    var metin = "Merhaba"; // string
    var liste = new List<int>(); // List<int>

    Yukarıdaki örnekte de görüldüğü üzere var tipi olarak belirlenen değişkenler hem integer değer hem string değer hem de bir liste tipinde integer değerler almıştır.

    Bu yazımızda sizlere C# veri tipleri hakkında bilgi vermeye çalıştık. C# veri tiplerinin ne olduğunu ne işe yaradığını anlattık ve bellekte tutulma türlerine göre sizlere bilgi vermeye çalıştık . C# veri tipleri nin neler olduğuna tek tek değindik ve en çok kullanılanların neler olduğu konusunda sizlere bilgi verdik.

    C# veri tipleri konusunda değinmemizi istediğiniz başka bir bilgi varsa iletişim bölümümüzü kullanarak bize yazabilir ya da bu yazının altına yorum bırakarak bize söylemek istediğiniz bilgileri iletebilirsiniz.

    C# veri tipleri dışında farklı bir konuda bilgi almak istiyorsanız C# kategorimizi inceleyebilirsiniz.

    C# veri tipleri konusu ingilizce olarak C# Data Types olarak geçmektedir. Bu alanda güvenilir bir kaynak arıyorsanuz w3c.school sitesi size yardımcı olacaktır. Burada değindiğimiz konular hakkında bilgi bulabileceğiniz gibi çeşitli denemeler yapma şansınız da olacaktır.

    Cevap bırakın

    E-posta hesabınız yayımlanmayacak.