《C# to IL》第三章 选择和循环
2009-06-01 08:31:05 来源:WEB开发网a.cs
class zzz
{
static bool i;
static int j = 19;
public static void Main()
{
i = j > 16;
System.Console.WriteLine(i);
}
}
a.il
.assembly mukhi {}
.class private auto ansi zzz extends System.Object
{
.field private static bool i
.field private static int32 j
.method public hidebysig static void vijay() il managed
{
.entrypoint
ldsfld int32 zzz::j
ldc.i4.s 16
cgt
stsfld bool zzz::i
ldsfld bool zzz::i
call void [mscorlib]System.Console::WriteLine(bool)
ret
}
.method public hidebysig specialname rtspecialname static void .cctor() il managed
{
ldc.i4.s 19
stsfld int32 zzz::j
ret
}
}
Output
True
现在我们将研究IL如何处理条件操作符。让我们考虑C#中的语句j>i16。IL首先把值j放到栈上,也就是常量值16的前面。随后它会调用cgt操作,这是它首次在我们的源代码中出现。这个指令检查栈上的第1个值是否大于第2个。如果是,那么它会把值1(TRUE)放到栈上,否则它会把值0(FALSE)放到栈上。这个值随后被存储到变量i中。使用WritleLine函数,就会生成布尔值的输出,从而我们看到显示True。
同样,操作符<被转换为clt指令,它会检查栈上的第1个值是否小于第2个。从而我们看到IL具有它自己的一套逻辑操作符,对基本的逻辑运算进行内部处理。
- ››Illustrator CS6 打造孔雀花纹的字体
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››Illustrator教程:设计制作几何花瓣LOGO
- ››Illustrator实例教程:漂亮证卡变幻线的制作
- ››Illustrator文字教程:制作漂亮质感描边字
- ››Illustrator鼠绘:渐变工具运用绘制金属闹钟
- ››Illustrator鼠绘:教你画一个可爱卡通宝宝教程
- ››Illustrator简单四步做透明气泡教程
- ››Illustrator教程:制作漂亮的新货吊牌
- ››Illustrator教程:改变圆角矩形中一个圆角半径
- ››Illustrator教程:如何用网格工具绘制花瓣
- ››Illustrator涂抹命令打造文字草图特效
更多精彩
赞助商链接