Я заметил, что компилятор С# генерирует команду ret
в конце методов void
:
.method private hidebysig static void Main(string[] args) cil managed
{
// method body
L_0030: ret
}
Я написал компилятор для .NET, и он работает независимо от того, испускал ли я оператор ret
или нет (я проверил сгенерированный IL, и он действительно не там).
Я просто задаюсь вопросом: требуется ли ret
для методов, возвращающих void
для чего-либо? Кажется, он ничего не делает со стек, поэтому я считаю, что это совершенно не нужно для методов void
, но я хотел бы услышать от кого-то, кто знает немного больше о CLR?