Я изучаю аспекты clr в С# и читаю об этой теме в «clr через С# 4-е издание».
Говорят, что каждый экземпляр типа имеет указатель на vtable, но в книге они не не различайте статические, нестатические и виртуальные методы. В соответствии с ним все методы объявляются в таблице методов с типом object. Поэтому я думаю, что имя «vtable» вводит в заблуждение, а таблица виртуальных методов на самом деле является лишь частью обычной таблицы методов в каждом объекте типа. Это правда?
Это имело бы смысл, потому что при вызове виртуального метода также делается ссылка на объект, а затем clr проверяет тип объекта и вызывает метод, связанный с классом объектов. Или я ошибаюсь?
Еще вопрос: статические и нестатические методы тоже есть в таблице методов. Насколько я понимаю, они различаются только по параметру. Нестатические методы связаны с объектами, поэтому при вызове этих методов передается указатель this, чтобы показать объект, который его вызвал. Статические методы не нуждаются в этом параметре. Я прав?
Я знаю, что это чисто теоретически, но я надеюсь, что есть люди, которые могут мне помочь!
Неужели никто?