标签制度是正确的,完全是罚款,所有意图和目的与以下做法完全相同:
Igloo igloo = new Igloo();
DoSomething(igloo);
在<代码>Igloo后两个情况下,通过<代码>DoSometh方法,目前无法从<代码>Main中查询,使收件在<代码>DoSomething方法完成后即可查阅。
如果我们想更详细地审视一下正在发生的情况,那么,我们就在国际法学会上走了一步:
.method private hidebysig static
void Main (string[] args) cil managed
{
// Method begins at RVA 0x2060
// Code size 13 (0xd)
.maxstack 8
.entrypoint
IL_0000: nop
IL_0001: newobj instance void ConsoleApplication1.Igloo::.ctor()
IL_0006: call void ConsoleApplication1.Program::DoSomething(class ConsoleApplication1.Igloo)
IL_000b: nop
IL_000c: ret
}
为了解释这一意思;我们认为,在上,我们创建了一个新案例:——因为《刑法》是一种固定的虚拟机器,因此这一指示将提及这一实例。 下面的指令是:<代码>DoSomething——《刑法》再次规定,《刑法》是一种固定的虚拟机器,因此,论点被推向左边右边(最后一点是右上的理由)。 在本案中,只有1个论点,由于最后的行动,它已经处于停滞状态,因此我们准备采用我们的方法。
如果我们把这一点与我们在作出以下修改时产生的国际空间法研究所进行比较:
Igloo igloo = new Igloo();
DoSomething(igloo);
We can see only a couple of important differences:
.method private hidebysig static
void Main (string[] args) cil managed
{
// Method begins at RVA 0x2060
// Code size 15 (0xf)
.maxstack 1
.entrypoint
.locals init (
[0] class ConsoleApplication1.Igloo igloo
)
IL_0000: nop
IL_0001: newobj instance void ConsoleApplication1.Igloo::.ctor()
IL_0006: stloc.0
IL_0007: ldloc.0
IL_0008: call void ConsoleApplication1.Program::DoSomething(class ConsoleApplication1.Igloo)
IL_000d: nop
IL_000e: ret
}
除当地人被宣布为唯一区别的方法开始之外,还有<代码>stloc.0和ldloc.0
。 在建立<代码>Igloo与我们呼吁<代码>DoSomething之间打电话。 这是什么?
stloc.0
is an Directive to pop the final items off the ack andstor it in the 0th local. 此时此刻,我们不再有打上<条码>的正确栏目:DoSomething(我们需要我们的<条码>,Igloo作为顶端的例),这就是:<条码>ldloc.0——它把第0位当地人(背)推向 st。 基本上,这两项指示是我们的任务。
请注意,如果联合会计师协会将这些声明汇编成机码,几乎肯定会取消这两项声明。