Merhabalar arkadaşlar, bugün ki yazımda C# Programlama dilinde kullanılan Var ve Dynamic tipleri arasında bir karşılaştırma yaparak özelliklerine bakacağız. Var keyword u C# 3.0 sürümünde kazanılmış bir tiptir. Dynamic tipi ise C# 4.0 sürümünde kazanılmıştır. Var tipi ile dynamic tipinin farkını aşağıdaki örnek üzerinde anlaşılabileceğini düşünüyorum. var tipinde olan data değişkenine “Text” metni string formatında atanıyor ve data değişkeni artık string türünden bir değişken oluyor fakat sonraki satırda data değişkenine integer 5 atamaya çalıştığımızda hataya düşüyor, sebebi ise derleme anında var tipi aldığı tipi bilmek zorundadır. Dynamic tipine baktığımızda ilk olarak string “Text” metnini alıyor ve sonrasında integer 5 alıyor, en son da string tipinden list atanarak hatasız bir şekilde derlenecek hale geliyor. Sebebi dynamic tipi dinamik olarak gelen değer türüne dönüşmektedir ve bu özellikte bir çok yerde gerçekten kullanışlı olmaktadır.

enter image description here

Var Keyword : https://msdn.microsoft.com/tr-tr/library/bb383973.aspx

Dynamic Keyword : https://msdn.microsoft.com/en-us/library/dd264741.aspx

Detaylı olarak Karşılaştırma:

var dynamic
C# 3.0 sürümünde gelmiştir. C# 4.0 Sürümünde gelmiştir.
Statik bir tiptir. – Derlenme anında set edilen tipi bilir ve hafızada o tipe göre yer ayırır. Dinamik bir tiptir. – Gelen tipi bilmese de çalışma zamanında set edilen tipi belirler.
Değer set edilmeden tanımlanamaz hata verir.

var str = “Merhaba”;

str tipi string tipinden bir değer aldı ve artık hafızada string olarak tutulmaktadır. Sonradan değer ataması yapılır ise derleme anında hata verir.

Değer set edilmeden tanımlama yapılabilir.

dynamic str;

str = "Merhaba";

str = 2;

 

Dynamic ilk olarak string değer alıp sonradan integer bir değişken alabilir. Derlenme anında hataya düşmez.

Detaylı olarak farklarına ve kullanımlarını açıklamaya çalıştım. Kafanıza takılan bir yer olur ise ve yanlışlar var ise her zaman yorumlarınızı bekliyorum.

Bu yazıyı Yunanca bir parça ile sonlandırmak istiyorum.

Okuduğunuz için teşekkürler.

Alıntı yaptığım kaynaklar. Code Project : Var Type Vs Dynamic Type