Компилятор C # умнее, чем VB Компилятор .NET?

Если я посмотрю на IL, который создается в Linqpad для двух следующих фрагментов кода, мне интересно, что здесь происходит.

В C #

int i = 42;

получается следующий код IL

IL_0000:  ret

, тогда как в VB

Dim i As Integer = 42

это

IL_0000:  ldc.i4.s    2A 
IL_0002:  stloc.0  

По-видимому, компилятор C # понимает, что значение никогда не используется, и поэтому просто ничего не возвращает. В VB.NET транслируется фактический код.

Это из-за различий в оптимизации компилятора или что-то еще работает?

Обновление: Просто чтобы прояснить это - я просто ввожу эту строку в LinqPad и смотрю на IL, который он создает (определенно запустив соответствующий компилятор). Нет программы .

11
задан Olaf 9 February 2012 в 11:06
поделиться