WEB开发网
开发学院软件开发C语言 《C# to IL》第三章 选择和循环 阅读

《C# to IL》第三章 选择和循环

 2009-06-01 08:31:05 来源:WEB开发网   
核心提示: a.csclass zzz{static bool i;static int j = 19;public static void Main(){i = j == 16;System.Console.WriteLine(i);}}a.il.assembly mukhi {}.class pr

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
ceq
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

False

操作符==就是EQUALITY操作符。它也需要栈上的2个操作数(operand)来检查相等性。此后它使用ceq指令来检查相等性。如果相等,它会把值1(TRUE)放到栈上,如果不相等,它会把值0(FALSE)放到栈上。指令ceq是IL的逻辑指令集的不可缺少的一部分。

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
ldc.i4.0
ceq
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
}
}

上一页  3 4 5 6 7 8 9 10  下一页

Tags:to IL 第三章

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接