robinzonejob
@robinzonejob
разработчик .NET

Что имеет в виду Рихтер (CLR Via C#) в 6-ой главе?

Помогите разобраться, что имеется в виду.
В 6-ой главе про вызов виртуальных методов, свойств - Рихтер пишет, что компилятор использует два метода:
call и callvirt .
Последний отличается тем, что у него есть проверка на null экземпляра, на котором он вызывается. Так же callvirt используется в том числе и для вызова обычных, экземплярных, невиртуальных методов.
А дальше - он пишет - что иногда, компилятор может использовать метод call для вызова виртуальных(!) методов и в качестве примера он приводит вызов base.ToString(). Объясняет он это тем, что если бы при вызове данного метода использовался callvirt то возникала бы рекурсия и переполнение стека.

Вопрос - почему она должна возникать? И из-за чего?
  • Вопрос задан
  • 542 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы