2010-07-22 22 views
7

Sé que en C++ hay vpointer y vtable. La tabla de funciones virtuales es una lista de indicadores de métodos para los métodos virtuales en la clase. Cada instancia de una clase tiene un puntero a la tabla, que se usa cuando llamamos a un método virtual desde la instancia.¿Cómo funcionan los métodos virtuales en C#?

Quiero saber cómo se implementa esto en C#. Como sé, el concepto de tablas virtuales es el mismo. Pero qué pasa con vpointer es que GetType() se usa en su lugar.

Agradecería tantos detalles como fuera posible. Gracias.

Respuesta

7

Los Vtables son un enfoque posible en C++, son no obligatorios según el estándar C++. El enfoque de los usos de .NET cumple claramente con los estándares publicados para CLI y C#, pero los detalles de implementación no se especifican (y podrían cambiar).

Puede inferir algunos detalles de la forma en que funcionan las interfaces, los miembros anulados y los miembros "nuevos".

¿Por qué quiere saber esto? Si tiene un problema específico, entonces, al establecer el problema, otros podrán abordarlo directamente.

+0

No hay ningún problema en particular que deba resolverse. Solo quiero saber cómo está funcionando/implementándose internamente. – NDeveloper

Cuestiones relacionadas