2010-11-04 17 views
5

3.5'e kadar .Net'in .Net 2.0'da tanımlanan bayt kodunu kullandığını biliyorum.CIL (Ortak Orta Dil) .Net 4.0 için değiştirildi mi?

Yeni 4.0 bayt kodunun değişip değişmediğini merak ediyorum. Teşekkürler!

En son ECMA standart dosya hala 2006 olanı olduğundan, 4.0 bayt kodunu değiştirmediğinden şüpheleniyorum.

DÜZENLEME: Web'de bir arama yaptım ve CIL'in .Net baytkodunun farklı şeyler olduğunu keşfettim. Anladığım kadarıyla, CIL to .Net bayt kodu, makine kodunun asmidir. Yani benim sorum hala geçerli, CIL/Bytecode değişiyor mu?

+0

olası yinelenen http://stackoverflow.com/questions/1626368/difference-between-clr-2-0-and-clr- bakın 4-0) –

+0

Gerçekten değil. Bu soru, CIL’de değil, CLR’deki değişikliklerle ilgilidir. Aslında, cevaplardan sadece bir tanesi CIL'den bahseder ve sadece cevap verenin “inanmadığını” söyleyen yeni talimatlar vardır. –

+1

ECMA standart sürümünün anlamı, Microsoft'un yeni bir tane göndermemiş olmasıdır. C# için ECMA standart sürümü ya C# 2.0'dan beri değişmedi, fakat hepimiz C# 3.0'da önemli değişiklikler olduğunu biliyoruz (lambdas, yerel değişken tipi çıkarımı, anonim yapısal türleri, LINQ sorgulama anlaşmaları) ve C# 4.0 (jenerik co- ve contravariance, "dinamik". –

cevap

7

Evet, CLR değiştirildi:

.NET Framework sürüm 4: .NET Framework Versions and Dependencies sayfasından

bir CLR yeni sürümü, genişletilmiş taban sınıf kitaplıkları ve yeni özellikler böyle dahildir Yönetilen Genişletilebilirlik Çerçevesi (MEF), dinamik dil çalışma zamanı (DLR) ve kod sözleşmeleri olarak. CIL (MSIL) değişiklikleri ile ilgili

, geldim en yakın mevcut tüm işlem kodları açıklamalıdır System.Reflection.Emit.OpCodes sınıfına hiçbir değişiklik, olmasıdır. 3.5 dokümantasyon versiyonunu 4.0 dokümantasyon versiyonunu karşılaştırarak doğruladım.

+0

-1. Bu soru değildi. –

+0

Tamamen haklısınız. Bu konuda “OpCodes” sınıfından başka somut bilgiler bulmak çok zor; Bu bilgi ile genişletilmiş cevap. –

-1

Evet.Şimdi CLR sürüm 4.0 var. Bu en son sürüm 4.6'dır.

https://msdn.microsoft.com/en-us/library/8bs2ecf4(v=vs.110).aspx

([CLR 2.0 ve CLR 4.0 arasındaki Fark] arasında
+0

Bu, teorik olarak bu soruya cevap verebilirken, [buradaki cevabın temel kısımlarını içerecek şekilde [// meta.stackoverflow.com/q/8259] tercih edilir) ve referans için bağlantı sağlar. – Raju