Можно влиять на итоговую компиляцию проекта с помощью атрибута **MethodImplAttribute**. Атрибут принимает в качестве параметра только **MethodImplOptions**
Например, можно оптимизировать скомпилированный IL code, указав компилятору, что код внутри метода нужно заинлайнить.
Заинлайнить - Вместо вызова метода, вставится код метода.
Большой плюс `MethodImplOptions.AggressiveInlining` в том, что он скрывает элемент CallStack’а (Вызов не будет отображаться, например, при отладке).
Атрибут работает только в Release Mode, если включить Debug Mode, то работать не будет (жучок в правом нижнем углу)
Данный метод будет заинлайнен компилятором.
```csharp
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static float Min(float a, float b)
{
return (a >= b) ? b : a;
}
```
Документация [MethodImplAttribute](https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.compilerservices.methodimplattribute?view=net-7.0)
Документация [MethodImplOptions](https://learn.microsoft.com/ru-ru/dotnet/api/system.runtime.compilerservices.methodimploptions?view=net-7.0)
<br>
Для наглядности, один из элементов CallStack’а
