《C# to IL》第三章 选择和循环
2009-06-01 08:31:05 来源:WEB开发网br指令是IL得以运转的关键组件之一。
a.cs
class zzz
{
static bool i = true;
public static void Main()
{
if (i)
System.Console.WriteLine("hi");
}
}
a.il
.assembly mukhi {}
.class private auto ansi zzz extends System.Object
{
.field private static bool i
.method public hidebysig static void vijay() il managed
{
.entrypoint
ldsfld bool zzz::i
brfalse.s IL_0011
ldstr "hi"
call void [mscorlib]System.Console::WriteLine(class System.String)
IL_0011: ret
}
.method public hidebysig specialname rtspecialname static void .cctor() il managed
{
ldc.i4.1
stsfld bool zzz::i
ret
}
}
Output
hi
在我们的C#程序中,我们将静态变量初始化为true值。
l 静态变量,如果它们是字段,就会在静态构造函数.cctor中被初始化。这会在上面的程序中显示。
l 另一方面,局部变量在它们所在的函数中被初始化。
这里,让人吃惊的是,使用ldc指令将值1放置在栈上的静态构造函数中。即使同时在C#和IL中定义了字段i,还是没有true或false这样的符号。
接下来,使用stsfld将静态变量i初始化为值1,尽管变量是布尔类型的。这就证实了IL支持bool数据类型,它不会识别出单词true或false。因此,在IL中,布尔值分别只是数字1或0的别名。
- ››Illustrator CS6 打造孔雀花纹的字体
- ››TOscilloscope 仿Windows任务管理器CPU使用记录组...
- ››Illustrator教程:设计制作几何花瓣LOGO
- ››Illustrator实例教程:漂亮证卡变幻线的制作
- ››Illustrator文字教程:制作漂亮质感描边字
- ››Illustrator鼠绘:渐变工具运用绘制金属闹钟
- ››Illustrator鼠绘:教你画一个可爱卡通宝宝教程
- ››Illustrator简单四步做透明气泡教程
- ››Illustrator教程:制作漂亮的新货吊牌
- ››Illustrator教程:改变圆角矩形中一个圆角半径
- ››Illustrator教程:如何用网格工具绘制花瓣
- ››Illustrator涂抹命令打造文字草图特效
更多精彩
赞助商链接