Главная страница   /   6. Создание кода при помощи выражений (Метапрограммирование в .NET

Метапрограммирование в .NET

Метапрограммирование в .NET

Кевин Хазард

6. Создание кода при помощи выражений

В этой главе:

  • Использование кода как данных
  • Использование мощи деревьев выражений
  • Улучшение кода при помощи выражений

Как вы видели в главе 5, вы можете использовать Reflection.Emit API для создания динамического кода, который исполняется в рантайме. Это требует глубокого знания IL. Давайте будем честными: знание IL – это не набор навыков, которым владеют многие .NET разработчики, и не обязательно, что они хотят это знать, даже если они заинтересованы в методиках метапрограммирования. Причина проста: написание кода в IL может легко привести к неправильной реализации и требует ментальную модель выполнения кода в .NET, а это не так интуитивно, как при работе с языками высокого уровня.

К счастью, в .NET есть еще один API, который позволяет создавать код без знания IL . Это API Выражений (Expression API), который существует в мире LINQ. В этой главе вы увидите, как можно рассматривать код как данные таким способом, который сделает метапрограммирование гораздо легче для .NET. Когда что-то легче выполнить, вы будете использовать это чаще, поэтому знать выражения для создания динамического кода выгодно. В конечном итоге вы увидите в своем коде сценарии, где вы можете использовать выражения для элегантного решения определенных проблемах. Давайте сначала рассмотрим то, как выражения работают на более высоком уровне.

6.1. Программирование на выражениях

6.2. Создание динамических методов при помощи LINQ выражений

6.3. Эффективное использование выражений

6.4. Развитие деревьев выражений

6.5. Резюме