WEB开发网
开发学院软件开发C语言 《C# to IL》第四章 关键字和操作符(上) 阅读

《C# to IL》第四章 关键字和操作符(上)

 2009-06-03 08:30:41 来源:WEB开发网   
核心提示:位于return语句之后的代码是不会被执行的,在下面给出的第1个程序中,《C# to IL》第四章 关键字和操作符(上),你将发现在C#中有一个WriteLine函数调用,但是在我们的IL代码中却看不到,也就不用将其转换到IL中了,a.csclass zzz{public static void Main(){retu

位于return语句之后的代码是不会被执行的。在下面给出的第1个程序中,你将发现在C#中有一个WriteLine函数调用,但是在我们的IL代码中却看不到。这是因为编译器意识到任何return之后的语句都不会被执行,从而,也就不用将其转换到IL中了。

a.cs

class zzz
{
public static void Main()
{
return;
System.Console.WriteLine("hi");
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
br.s IL_0002
IL_0002: ret
}
}

编译器不会在编译从不执行的代码上浪费时间,而是在遇到这种情形时生成一个警告。

a.cs

class zzz
{
public static void Main()
{
}
zzz( int i)
{
System.Console.WriteLine("hi");
}
}

a.il

.assembly mukhi {}
.class private auto ansi zzz extends System.Object
{
.method public hidebysig static void vijay() il managed
{
.entrypoint
ret
}
.method private hidebysig specialname rtspecialname instance void .ctor(int32 i) il managed
{
ldarg.0
call instance void [mscorlib]System.Object::.ctor()
ldstr "hi"
call void [mscorlib]System.Console::WriteLine(class System.String)
ret
}
}

1 2 3 4 5 6  下一页

Tags:to IL 第四章

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