2009-02-19 24 views
7

.NET 3.5'deki yeni özellikler (var, Lambda, linq, vb. Gibi) ve daha fazlası, C# yalnızca statik olarak yazılmış bir dil değil, aynı zamanda Dinamik olarak yazılan mu sonucuna varabiliriz?C# Dinamik olarak yazılan dil

Neden veya neden olmasın? İstem aşağıda

Düzenleme # 1

Birçok afiş, diline dinamik tip-lik katacak 4.0 .net. Bu dili yavaşlatır mı?

Her sürümde csharp farklı dillerden bir şey alır. Bugüne kadar .Net1.1 olarak ise, atalarımız

Düzenleme 2.

Çoğunuzun soruyu yanlış anladın .... Hatta işlevsel dil yapmak niyetinde değildi; Gelecek sürüm 4.0 dahil olmak üzere genel olarak C# dilini kastediyorum. Bu nedenle, dilin dinamik olarak yazıldığını söylemek yanlış olur ...

+0

Nice - tamamen 'dinamik' kelimesini icat ettiniz. Bunu sevdim. –

+0

+1 bu önemli bir ayrım - iyi bir soru! –

cevap

12

C# dinamik olarak yazılmadı - tüm türler, bahsettiğiniz örneklerde statik olarak çıkarılır. C# sonraki sürümünde COM ve gerçekten dinamik dillerle çalışmak için bazı dinamik özellikler içerecektir.

[Düzenle # 1] Evet C# 'nin yeni dinamik özelliği, her şeyi kullandığı için daha az bağlayıcı olacaktır. Bununla birlikte, eğer onu kullanırsanız uygulamanızı sadece yavaşlatacaktır - çekirdek dilin kendisi için bir değişiklik değildir. C# 4, geç bağlı türlerle çalışma yeteneğine sahip, statik olarak yazılmış bir dil olacaktır.

[Düzenle # 2] Hayır C# 4 dinamik olarak yazılan bir dil olmayacak. C# 4, statik tip kontrolü yerine tip üyelerinde geç bağlama yerine geçen yeni bir dynamic tipini tanıtır. Dinamik yetenekler sadece bu dinamik türlerde kullanılabilir. C# nin temel sistem türü değişmedi.

2

Hayır, hala statik olarak yazıldığında,/linq tipi derleme zamanında bilinen bu yüzden derleyici tarafından tüm kullanım inferance, dinamik/ördek yazarak # 4.0

+0

okumalısınız: "Hayır, hala statik olarak yazıldığında, var/lambda/linq tüm kullanım inferance derleyici tarafından tip ** bilinen bu yüzden zaman derlemek **, dinamik/ördek yazarak C# 4.0 ile gelecek" –

1

Dinamik yazılan c ile gelecek var/lambda ?! Hayır! Teknik olarak, C# statik olarak yazılan bir dildir. Bu .NET çalışma zamanı tarafından sağlanan CLR yansıma hizmetleri yoluyla dinamik yöntem sevk yeteneklere sahiptir (v1.0 beri mevcut ve .NET ile 3.5 özellikleri ilgisi yok etmiştir, C# 3.0 özellikleri hala statik olarak yazıldığında). C# 4.0 gerçek dinamik yazımına sahip olacak.

0

Yorumcular:'un olduğunu biliyor musunuz? Etkilerinin yayılacağına dair bir his var.

+0

İlginç , etkilerin hangi yollarla yayılacağını düşünüyorsunuz? Bir bakışta –

+0

, bunu yöntem imzaları veya aşırı yük seçimlerini etkileyebilir düşünüyorum. Yine de bu soruya birkaç yıl içinde bakmak ilginç olacak. – brianary

İlgili konular