varstatik yazılır - derleyici ve çalışma zamanı türü bilir - sadece bazı yazarak kaydederler ... aşağıdakiler% 100 aynıdır:
var s = "abc";
Console.WriteLine(s.Length);
ve
string s = "abc";
Console.WriteLine(s.Length);
Oldu ki tüm olmasıydı derleyici anladım s(başlatıcısı itibaren) bir dize olmalıdır. Her iki durumda da (IL'de) bunun s.Length(örnek) string.Lengthözelliği anlamına geldiğini bilir .
dynamica, çok farklı bir hayvan; en çok benzeyen object, ancak dinamik gönderimle:
dynamic s = "abc";
Console.WriteLine(s.Length);
Burada dinamik olaraks yazılır . Yaklaşık bilmez o bilmediği için, herhangi bir şey hakkında derleme zamanında. Örneğin, aşağıdakiler de derlenir (ancak çalıştırılmaz):string.Lengths
dynamic s = "abc";
Console.WriteLine(s.FlibbleBananaSnowball);
Çalışma zamanında (yalnızca), özelliği kontrol eder FlibbleBananaSnowball- bulamaz ve kıvılcım duşunda patlayabilir.
İle dynamic, özellikler / yöntemler / işleçler / vb . Çalışma zamanında gerçek nesneye göre çözümlenir . COM (yalnızca çalışma zamanı özelliklerine sahip olabilen), DLR veya diğer dinamik sistemlerle konuşmak için çok kullanışlıdır javascript.