Можно влиять на итоговую компиляцию проекта с помощью атрибута **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’а ![MethodImplAttribute-MethodImplOptions](images/MethodImplAttribute-MethodImplOptions.png)