Does anyone know how C# does the memory allocation for objects, and how methods are implemented? For example, C++ uses virtual method tables, and in Java objects contain a pointer to their class, with fields containing all the methods, and a field point to the superclass for the class. In addition, C++ uses static space allocation and slicing, whereas Java uses dynamic space allocation. How are these isses addressed in C#?