Расположение объектов в памяти: странный указатель перед int - C#
Формулировка задачи:
Сразу оговорюсь, что вопрос носит просто ознакомительно - спортивный характер. Итак...
Есть у нас код:
вот если мы остановимся отладчиком сразу после создания класса, нажмем заветные клавиши Ctrl + D + Y, то у нас откроется окно(в которое мы впишем имя объекта), которое укажет нам как располагается в памяти наш объект.
И перед выделенными интами, у нас будет какой-то указатель.
Что это за указатель?
class Abc { int a = 1; int b = 2; int c = 3; } public class MainClass { public static void Main() { Abc abc = new Abc(); } // <- stop here }
Решение задачи: «Расположение объектов в памяти: странный указатель перед int»
textual
Листинг программы
.load sos extension X:\Windows\Microsoft.NET\Framework\v4.0.30319\sos.dll loaded !DumpObj 0x02612464 PDB symbol for clr.dll not loaded Name: ConsoleApplication14.Program+Abc MethodTable: 00193834 EEClass: 001912c4 Size: 20(0x14) bytes File: ...\ConsoleApplication14.exe Fields: MT Field Offset Type VT Attr Value Name 71a4c770 4000001 4 System.Int32 1 instance 1 a 71a4c770 4000002 8 System.Int32 1 instance 2 b 71a4c770 4000003 c System.Int32 1 instance 3 c !DumpMT -MD 0x00193834 EEClass: 001912c4 Module: 00192e94 Name: ConsoleApplication14.Program+Abc mdToken: 02000003 File: ...\ConsoleApplication14.exe BaseSize: 0x14 ComponentSize: 0x0 Slots in VTable: 5 Number of IFaces in IFaceMap: 0 -------------------------------------- MethodDesc Table Entry MethodDe JIT Name 71954960 71656728 PreJIT System.Object.ToString() 71948790 71656730 PreJIT System.Object.Equals(System.Object) 71948360 71656750 PreJIT System.Object.GetHashCode() 719416F0 71656764 PreJIT System.Object.Finalize() 0019C030 00193828 JIT ConsoleApplication14.Program+Abc..ctor()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д