C#

Value Type vs Reference Type

Value Type ve Reference Type, veri türlerinin iki farklı tipidir. Bu veri türlerinin arasındaki temel farklar şunlardır:

  1. Depolama yeri: Value Type verileri, değişkenin kendisi içinde depolanır. Öte yandan, Reference Type verileri, değişkenin gösterdiği bellek adresinde depolanır.

  2. Atama işlemi: Value Type verileri, değişkenler arasında atama yapıldığında kopya olarak atanır. Öte yandan, Reference Type verileri, atama yapıldığında sadece referans değişkenler arasında paylaşılır.

  3. Özel durumlar: Value Type verileri, null değerine atanamaz. Öte yandan, Reference Type verileri, null değerine atanabilir.

Value Type veriler, genellikle sayılar, boolean değerler ve karakterler gibi basit veri türleridir. Örnekler: int, float, double, char, bool

Reference Type veriler, genellikle diziler, nesneler ve fonksiyonlar gibi daha kompleks veri türleridir. Örnekler: object, array, function

Value TypeReference Type
  • int, bool ve char gibi tiplerdir
  • null değeri alamazlar
  • struct’a benzerler
  • System.ValueType sınıfından türemişlerdir
  • new ile oluşturulamaz
  • RAM’de stack denen yerde direk değerleri tutulur
  • sınıf veya nesnedir
  • null değeri alabilirler
  • class ve inerface’e benzerler
  • System.Object sınıfından türemişlerdir
  • new ile oluşturulabilirler
  • RAM’de stack zerinde tutulur, ayrıca heap denen yerde gerçek datanın referans değeri tutulur