计算机与网络教学 IL语言在C#教学中的应用.doc

上传人:3d66 文档编号:1854887 上传时间:2019-01-13 格式:DOC 页数:7 大小:18KB
返回 下载 相关 举报
计算机与网络教学 IL语言在C#教学中的应用.doc_第1页
第1页 / 共7页
计算机与网络教学 IL语言在C#教学中的应用.doc_第2页
第2页 / 共7页
计算机与网络教学 IL语言在C#教学中的应用.doc_第3页
第3页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《计算机与网络教学 IL语言在C#教学中的应用.doc》由会员分享,可在线阅读,更多相关《计算机与网络教学 IL语言在C#教学中的应用.doc(7页珍藏版)》请在三一文库上搜索。

1、计算机与网络教学 IL语言在C#教学中的应用 周显春(1974-),男,硕士,三亚学院讲师,研究方向为计算机网络技术。1IL语言特点 IL是.NET框架中中间语言(Intermediate Language)的缩写。使用.NET框架提供的编译器可以直接将源程序编译为.exe或.dll文件,但编译出来的程序代码并不是CPU能直接执行的机器代码,而是一种中间语言IL(Intermedate Language)的代码。使用中间语言的优势有两点一是可以实现平台无关性,与特定CPU无关;二是只要把.NET框架中某种语言编译成IL代码,就可实现.NET框架中语言之间的交互操作 1。 2现有高级语言教学现状

2、 目前,讲授一门新的高级语言,不管是采用案例教学、任务驱动法,还是其它教学方法,都是先举例验证结论,再模仿、升华,需要花费大量的时间记忆相关内容。如果采用IL理解高级语言的执行过程,可以尽快让学生熟悉所学语言的特征,从而掌握这门语言。 3IL代码在C#教学中的应用 3.1理解变量、字段初始化,构造函数调用 例1程序测试,代码如下 using System; class Test int k; static void Main() int i=20; Abc a = new Abc(); public class Abc int i; static int j; string s = Hello

3、; static Abc() j=100; public Abc() i=10; 涉及数值型、引用型字段初始化,可以更好地理解它们在内存中初始化的位置和顺序;还可以静态、实例构造函数出现的顺序以及局部变量和字段的区别。 在64位Windows 8操作系统环境下,使用ILDasm反汇编之后的IL代码(经过处理)为 / Metadata version v4.0.30319 .module abc.exe .class private auto ansi beforefieldinit Test extends mscorlibSystem.Object .field private int32

4、k .method private hidebysig static voidMain() cil managed .entrypoint .maxstack1/ 代码大小 11 (0xb) .locals init (int32 V_0, class Abc V_1)/在Callstack上定义了两个局部变量 IL_0000nop IL_0001ldc.i4.s 20 IL_0003stloc.0 /局部变量V_0赋值 IL_0004newobj instance void Abc.ctor() IL_0009stloc.1 /局部变量V_1赋值 IL_000aret / end of me

5、thod TestMain .method public hidebysig specialname rtspecialname instance void .ctor() cil managed /实例构造函数 .maxstack8/ 代码大小 7 (0x7) IL_0000ldarg.0 /调用this IL_0001call instance void mscorlibSystem.Object.ctor()/调用基类构造函数 IL_0006ret / end of method Test.ctor / end of class Test .class public auto ansi

6、Abc extends mscorlibSystem.Object .field private int32 i .field private static int32 j .field private string s .method private hidebysig specialname rtspecialname static void .cctor() cil managed /静态构造函数 .maxstack8/ 代码大小 17 (0x11) IL_0000ldc.i4.s 100 IL_0002stsfld int32 Abcj/静态字段j 赋值 IL_0007nop IL_0

7、010ret / end of method Abc.cctor .method public hidebysig specialname rtspecialname instance void .ctor() cil managed /实例构造函数 .maxstack8/ 代码大小 29 (0x1d) IL_0000ldarg.0 /调用this IL_0001ldstrHello IL_0006stfldstring Abcs /字段s赋值 IL_000bldarg.0/调用this IL_000ccall instance void mscorlibSystem.Object.ctor(

8、)/调用基类构造函数 IL_0011nop IL_0012nop IL_0013ldarg.0 /调用this IL_0014ldc.i4.s 10 IL_0016stfldint32 AbcI /字段I赋值 IL_001bnop IL_001cret / end of method Abc.ctor / end of class Abc 根据上述IL语言代码及注解可知 (1) 类Abc,Test继承于Object,即任何类都隐形继承于Object。 (2) 类的定义如果没有自定义构造函数,就会自动生成默认函数。 (3) 从类Abc的静态构造函数初始化静态字段j,实例构造函数 初始化实例字段s,i过程中,可以看出静态变量由静态构造函数初始化,实例变量由实例构造函数初始化完成。 (4) 由类Abc的实例构造函数可知,先调用字段s初始化语句,再调用基类System.Object构造函数,最后执行构造函数已有语句字段I的初始化。 (5) 由类Abc的静态构造函数、实例构造函数可知,静态构造函数不调用基类静态构造函数,只有构造函数才会调用。第 7 页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1