Имеется такая строчка в методе на il: "IL_0007: ret". Что это значит ? (Понятно, что это связано с окончанием метода, но как конкретно)
IL многое почерпнул из набора инструкций 8086. RET означает return, то есть возврат из метода.
Вызов процедур и возврат на низком уровне реализован с помощью стека. Инструкция CALL сохраняет в стеке адрес инструкции, которая следует сразу за ней и передаёт управление туда, куда вы ей указали.
Когда процессор встречает инструкцию RET, он извлекает из стека адрес следующей инструкции и передаёт управление на неё. Из-за того, что адрес возврата хранится не в регистрах, а в стеке, размер которого достаточно большой, процедуры могут вызывать друг друга столько раз, сколько потребуется.
Впрочем, если вы допустили ошибку в программе, или запустили рекурсивную функцию на очень больших данных, стек всё-таки может оказаться переполненным. Именно ошибка переполнения стека — stack overflow — дала название этому сайту, где мы задаём и отвечаем на вопросы.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей