2014-04-01 38 views
2

有人知道使用ldloc var CIL指令和ldloc.n是否存在一個小的差異?ldloc var與ldloc.n

在方法範圍內考慮這個局部變量表:

.locals init ([0] int32 a, 
       [1] int32 b) 

是那些指令:

ldloc.0 
ldloc.1 

更好,worste或等於比:

ldloc a 
ldloc b 
+0

'ldloc var'只是ilasm中'ldloc.n'的糖語法。 – leppie

+0

我想知道是否有一個性能影響創建超過4個局部變量,因爲ldloc.n適合0 <= n <= 3 ... –

+0

'ldloc n'可以取任何數字。 '''版本只是它的簡短版本。顯然略高效... – leppie

回答

2

有許多縮短的簡單目標的常見操作碼形式 - 縮短方法的長度。 ldloc.n指令佔用一個字節,ldloc.s n兩個字節,ldloc n三個字節。這對於內聯非常有用,因爲長於16個字節的方法不適用於它。