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