.Net IL изменился вообще начиная с.Net 2.0?

Вы должны указать тип входа. Если вы не хотите, чтобы метод принимал какие-либо параметры, определите пустой тип сообщения, например:

message WhoAreYouParams {}

. Причина, по которой это требуется, заключается в том, что если вам позже потребуется добавить необязательный параметр, вы можете сделать это, не нарушая существующий код.

6
задан sblom 7 June 2009 в 07:35
поделиться

3 ответа

Я думаю , что никаких изменений IL как таковых не было, но были существенные изменения в реализации CLR для создания динамических методов более эффективен, позволяет компилировать дерево выражений и т. д. Я, кажется, помню, что были изменения в безопасности построения динамических методов, чтобы сделать возможным для лямбда-выражений, генерирующих деревья выражений, вызывать частные методы для работы даже в средах с относительно низким уровнем доверия. Компилятор знает, что вызывать частный метод допустимо, поскольку точка, в которой компилируется исходный код, имеет к нему доступ. Хотя доказать это непросто :) См. эту заметку Эрика Липперта .

5
ответ дан 17 December 2019 в 04:51
поделиться

Стандартная среда CLR (версия 2.0.50727) не изменилась со времени .NET 2.0, поэтому ваш IL идентичен. (См. Также этот SO QA )

0
ответ дан 17 December 2019 в 04:51
поделиться

.. и в результате, если вы хотите, вы можете использовать множество функций .NET 3.5 в проекте .NET 2.0, если вы используете последний компилятор:

  • Автоматические свойства
  • Методы расширения (требует небольшого подвоха)
  • Инициализаторы объектов
  • Выведение типа (ключевое слово var)
  • Лямбда-выражения
0
ответ дан 17 December 2019 в 04:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: