deger ve referans , stack heap tipleri ,stack,heap, c# da değer ver referans alma Mühendislik / Programlama

Değer Ve Referans Tipleri / Form Dersleri -3

Bu kısımda değer ve referans tiplerine değinmeyi düşündüm. İlk olarak bir objenin sınıfını belirledik. Bu obje çalıştığında RAM bellekte iki tür şekilde bir depolama şekliyle geçecektir. Bu bizim verdiğimiz değer ve referans olarak ikiye ayrılır.Değer ve referans tipleri için  bir RAM belleğin yapısını ikiye ayıracak olursak ikiye bölmek sizin anlamanıza yardımcı olacaktır.

Değer Ve Referans Tipleri Nelerdir?

Değerlerimiz yani İngilizce ifadesiyle value tiplerimiz STACK denilen kısımda barındırılıyor. HEAP kısmında ise bizim belirlediğimiz referans tipleri bulunmaktadır.

Basit bir örnekte eğer ki ben bir değer belirledi isem ve class kavramında bir çalışma işlemi yapmış olmaz isem örneğin bir string ifadesine ben eğer “bisiklet” diye bir ifade atayacaksam değer RAM belleğinin STACK kısmında tutulmaktadır.
Bu ifadeler stack kısmında tahsis edilen RAM belleği kısmında kalmaktadırlar. Örneğin aşağıdaki gibi bir kod vereceksem bizim verdiğimiz ifadeyi desteklemiş olurum.
Referans da eğer ki bir ifadeyi ilk önce kopyalayıp onu kullanacak isem o ifade artık bağımsız olarak bir önce işlenmiş ifadenin klonu olarak devam eder.

Şema biçiminde gösterecek olursam bizim yaptığımız RAM bölmesinde aşağıdaki gibi şekillenecektir.

Değer ve Referans Tipleri  C#

Burada ilk kopyaladığım ifade a string ifadesi kendi içinde olan değeri b  ifadesine atayıp sadece adres değişikliği sağlamaktadır. Yani klonlama fakat adresi ayrı bir biçimde.

Bu örnekte olduğu değer biçiminde verdiğimiz ifadeler hep RAM bölgesinde tahsis edilen kısımlarda depolanır.

Peki, bu STACK kısmında yer alabilenler nelerdir?

  • String değişkenler
  • İnteger değişkenler
  • Double değişkenler
  • Enum ifadeleri
  • Struck
  • ….. (Çoğaltılabilir)

 

Bir örnek daha yapıp değer ve referans tiplerini daha şekillendireceksek  bizimi kodlamamıza bir sınıf ekleyip devam edeceksek bu durumda bizim bir alt kadememiz olan HEAP bölgesine eleman atamış olacağız.

Biraz daha açarsak, yani bir klas oluşturduğunuzda o klas RAM  bölgesinin  STACK kısmında adresleme yapar ve bu adreslemede sizin o klasa attığınız ifadeler barındırır. Bu klasın elemanlarının değerleri de HEAP bölgesinde barındırılır.

Yani söyle diyecek olursak;

 

Değer Ve Referans Tipleri /Form Dersleri -3

Değer Ve Referans Tiplerini Neden Kullanırız?

Peki, asıl soru olarak neden biz  HEAP ve STACK yani değer ve referans tiplerine ihtiyaç duyuyoruz? Ve referans tipleri ne işimize yarar?
Bu kısımlar biz bizim için bir alan tasarrufu ve tek elden yönetim sağlar. Şöyle ki bir veri oluşturacaksanız bir milyar tane kişilik bir veri, bu veri sizin için kopyalanması ve dağıtılmasına hem engel olmak için hem de dağıtıma çıktığı vakit sizin kopyalamanıza gerek kalmadan kullanıma sunmayı esas almıştır.  Örneğin ticari bir sitede referans alma hayatidir. Düşünün tüm 1 milyon ürünün güncellemesinin yapacak adam, bunun için dünya kadar gayret sarf edeceğine referans alıp o değerde indirim veya değişimi daha kolay yapabilmeyi kolaylaştırmak için kullanır.
Yani bir şirkette patron ve çalışanlar aynı veriyi kullanır ve böylelikle kullanılan alan az olur, tek elden yönetim bulunur.
Değer ve referans tipleri bizim için ve çoklu veri ile uğraşan kişiler için hayatidir.

Print Friendly, PDF & Email

murat

people belong theirs ideas | ideas change the lives shades . mechatronic is one of my stuff to stay alive

Bir Cevap Yazın