Параметры для динамического вызова методов в C # - PullRequest
4 голосов
/ 10 ноября 2009

Я видел довольно много вопросов, связанных с тем, как я могу вызвать метод, подобный этому или тому. Чего я не нашел, так это списка различных опций того, как вызывать метод через отражение или любым другим способом в csharp.

Может ли кто-нибудь подробно объяснить различные способы динамического вызова метода в csharp? От размышления к излучению ИЛ и любых других промежуточных путей. Я хотел бы знать все различные пути от самых дорогих до наименее дорогих с точки зрения ресурсов.

1 Ответ

5 голосов
/ 10 ноября 2009

Чтобы начать, вот несколько способов вызова метода в .NET, о которых я могу подумать:

  • Вызов
  • Callvirt
  • Делегат
  • DynamicMethod
  • MethodInfo.Invoke
  • Type.InvokeMember
  • TypeDescriptor
  • Reflection.Emit
  • Деревья выражений

Я помню какую-то статью, сравнивающую скорость большинства из них, но сейчас я не могу ее найти.

Быстрый поиск в Google дал следующие ссылки: [Ссылка] [Ссылка] [Ссылка] [Ссылка] [ссылка]

...