0
這個符號是什麼(IL_0000
等)在IL代碼中。它這是真正的內存堆地址?什麼是IL代碼中的那些符號?
IL_0000: nop
IL_0001: ldstr "here is something"
IL_0006: call void [mscorlib]System.Console::WriteLine(string)
IL_000b: nop
IL_000c: ldc.i4.s 18
IL_000e: newobj instance void Proj.Stock::.ctor(int32)
IL_0013: stloc.0
IL_0014: ldstr "another"
IL_0019: call void [mscorlib]System.Console::WriteLine(string)
IL_001e: nop
IL_001f: ldstr "and even more"
IL_0024: call void [mscorlib]System.Console::WriteLine(string)
IL_0029: nop
IL_002a: ret
它也有顯示你每一個指令的大小(因爲數字是相對地址)的有趣的副作用。 –
真的......如果你使用的是ILDASM ......但這不是必需的。 –
@FrédéricHamidi - 所以在'IL_0001'這個標籤上,它在字符串''ldstr'上做'是'。下一個標籤是'IL_0006'。然而,'這裏有東西'的長度是17個字符,並且存儲爲unicode(每個字符2個字節),即34個字節。那麼下一個標籤不應該是'IL_0023'(十六進制35)? – Icemanind