Я знаю в C++ существуют vpointer и vtable. Таблица виртуальной функции является списком указателей метода на виртуальные методы в классе. Каждый экземпляр класса имеет указатель на таблицу, которая используется, когда мы называем виртуальный метод от экземпляра.
Я хочу знать, как это реализовало в C#. Поскольку я знаю, что понятие виртуальных таблиц является тем же. Но что относительно vpointer GetType (), используется вместо этого.
Я ценил бы как можно больше детали.Спасибо.
Таблицы Vtables - это один из возможных подходов в C ++, они не требуются стандартом C ++. Подход, который использует .NET, явно соответствует опубликованным стандартам для CLI и C #, но детали реализации не указаны (и потенциально могут измениться).
Вы можете вывести некоторые подробности из того, как работают интерфейсы, переопределенные члены и «новые» члены.
Почему вы хотите это знать? Если у вас есть конкретная проблема, то ее указание позволит другим решить ее напрямую.
Взгляните на их документацию в спецификации C # : 10.5.3 Виртуальные методы (хотя это спецификация , а не реализация).