c# var, dynamic, object farkı

dynamic ile object Tipleri Arasındaki Fark

dynamic ile object arasındaki en temel fark, derleme zamanındaki tip uyumsuzluğu kontrolüdür. Bildiğiniz üzere object tipini kullanabilmemiz için unboxing (kutudan çıkarma) yapmamız gerekiyor. Yani bir tip object olarak tanımlanmışsa, karşı tarafta bunun tipinin ne olacağını belirtmeliyiz
Fakat dynamic tipi için böyle bir işleme gerek yok. dynamic tipler derleme sırasında hata almazken, object tipler için ise unboxing yapmalı, tipini açıkça belirtmeliyiz. Kısaca dynamic tipler bizi derleme hataları zahmetinden kurtarmaktadır. Fakat dynamic tipler her zaman güvenli bir program sunmayabilirler. Dikkatli kullanılmadığında çalışma zamanı hatalarına yol açabilirler. Bundan dynamic tipleri kullanmaktan kaçınmalıyız anlamı çıkarılmamalıdır. Tam tersine dynamic tip kullanımı bazen oldukça elverişli ve gerekli olabilmektedir.

var Anahtar Sözcüğü

dynamic tipleri anlatıp var tipinden bahsetmemek olmazdı. var tipi de tıpkı dynamic tipler gibi herhangi bir tipte bir değişken değeri olabilir. Temel düzeyde javascript biliyorsanız javascriptteki var tanımlayıcısıyla çok benzerlik gösterir. Peki aralarında ne gibi farklar var?

var ile dynamic Tipler Arasındaki Farklar

Yukarda var tipinin de değişken tiplerde değer alabildiğini ifade etmiştik. dynamic tiplerden bazı farklarla ayrılır. dynamic tipler null olabiliyorken var tipleri mutlaka bir başlangıç değerine sahip olmalıdır. Ayrıca ilk atanan tip neyse program sonlanana kadar aynı tipte olmak zorundadır. Bunu bir örnekle açıklayalım.

javascript nesnel yaklaşım

Merhaba arkadaşlar bu makalemizde sizlere javascript’e nesnel yaklaşımdan bahsedeceğim.Diğer dillerde olduğu gibi Class tanımlama işleminden başlayarak devam edelim.

function mahmut(){
}

Gördüğünüz gibi class tanımlamasını normal bir function tanımlaması gibi yaparak başlıyoruz.Daha sonra mahmut adlı bu class ın bir kopyasını alarak devam ediyoruz.Class kullanmaya başlamak için aşağıdaki kod blogunu kullanıyoruz.

var muhterem=new mahmut();
Evet gördüğünüz gibi “mahmut” class’ından “muhterem” adında bir kopya oluşturduk.Daha sonra ki kullanımlar da sürekli “muhterem ” kelimesini kullanacağız.Ama ilk tanımladığımız “mahmut” nesnesinin içi boş.Şimdi bu nesnenin içine bir kaç tane değişken tanımlayalım ve bunlara ulaşmayı deneyelim.
Kodlar aşağıda ki gibi olacak.

function mahmut(){
this.ad="mahmut";
this.yas="30";
this.il="Erzurum";
var soyad="aydın";
this.sonuc=ad+this.soyad;
}

Evet nesnemizin içini sadece değişkenlerle doldurduk ama şimdi bu değişkenlere ulaşmaya çalışalım.Şu şekilde ulaşabileceğiz.

var muhterem=new mahmut();
alert(muhterem.ad)//mahmut;
alert(muhterem.yas)//30;
alert(muhterem.il)//Erzurum;
alert(muhterem.soyad)//undefined
alert(muhterem.sonuc)//mahmutaydın;

Gördüğünüz gibi değişkenler eğer this ile refere edilmişse “public” olarak tanımlandığı için dışarıdan ulaşabiliriz ancak var ile tanımlanıp refere edilmişseler “private” oldukları için dışarıdan erişilemez ve sadece nesne içinde ulaşılabilir.Bu şekilde nesne içinde değişken tanımlama ve erişme işlemlerini hallettikten sonra basitçe metodlara girelim.
Şimdide “mahmut” nesnesinin içine metod(fonksiyon) ekleyelim ve dışarıdan ulaşalım.Şu şekilde olması gerekir.

function mahmut(){
this.ad="mahmut";
this.yas="30";
this.il="Erzurum";

this.merhaba_de=function()
{
return 'merhaba';
}
}

Kullanımı ise şu şekilde olması gerekir:

var muhterem=new mahmut();
alert(muhterem.merhaba_de())

Evet değerli arkadaşlar bu dersimizde basitce nesne tabanlı js yazmanın temellerini attık.Başka bir derste görüşmek üzere hoşçakalın.

Not: Alıntıdır.http://www.aydinmahmut.com/javascript-nesnel-yaklasim/