WEB开发网
开发学院软件开发C语言 (翻译) 《C# to IL》第一章 IL入门 阅读

(翻译) 《C# to IL》第一章 IL入门

 2009-05-29 08:31:17 来源:WEB开发网   
核心提示:1- 我们用C#、VB.NET语言编写的代码最终都会被编译成程序集或IL,因此用VB.NET编写的代码可以在C#中修改,(翻译) 《C# to IL》第一章 IL入门,随后在COBOL中使用,因此,即它不返回任何值,因为缺少较好的命名法则,理解IL是非常有必要的, 一旦熟悉了IL

1-

我们用C#、VB.NET语言编写的代码最终都会被编译成程序集或IL。因此用VB.NET编写的代码可以在C#中修改,随后在COBOL中使用。因此,理解IL是非常有必要的。

一旦熟悉了IL,理解.NET技术就不会有障碍了,因为所有的.NET语言都会编译为IL。IL是一门中性语言。IL是先发明的,随后才有了C#、VB.NET等语言。

我们将在一个短而精辟的程序中展示IL。我们还假设读者至少熟悉一门.NET语言。

a.il

.method void vijay() 
{

}

随后,我们用IL编写了一个非常短小的IL程序——它显然是不能工作的,并将它命名为a.il。那么我们怎么才能把它编译为一个可执行程序呢?不需要为此而焦急,Microsoft提供了一个ilasm程序,它的唯一任务就是从IL文件中创建可执行文件。

在允许这个命令之前,要确保你的变量路径被设置为framework中的bin子目录。如果不是,请输入命令如下:

set path=c:progra~1microsoft.netframeworksdkbin;%PATH%

现在,我们使用如下命令:

c:il>ilasm /nologo /quiet a.il

这样做会生成下面的错误:

Source file is ANSI

Error: No entry point declared for executable

***** FAILURE *****

将来,我们将不会显示由ilasm生成的输出的第一行和最后一行。我们还将移除非空白行之间的空白行。

在IL中,允许我们使用句点.作为一行的开始,这是一条指令,要求编译器执行某个功能,如创建一个函数或类,等等。任何开始于句点的语句都是一条实际俄编译器指令。

.method表示创建一个名为vijay的函数(或方法),并且这个函数返回void,即它不返回任何值。因为缺少较好的命名法则,函数名称vijay显得很随意。

1 2 3 4 5 6  下一页

Tags:翻译 to IL

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