标签:
C#编译器专门用于.NET,这表示用C#编写的所有代码总是使用.NET Framework运行。所以对于C#语言来说,可以有一下两个结论:
1)C#的 体系结构和方法论反映了.NET基础方法论。
2)在许多情况下,C#的特定语言功能取决于.NET的功能,或依赖于.NET的基类。
1)将源代码编译成Microsoft中间语言IL(Intermediate Language);
2)公共语言运行库CLR把IL编译为平台专用的代码。
IL(Intermediate Language)是微软.NET平台上衍生出的一门中间语言,.NET平台上的各种高级语言(如C#,VB,F#)的编译器会将各自的代码转化为IL。,其中包含了.NET平台上的各种元素,如“范型”、“类”、“接口”、“模块”、“属性”等等。值得注意的是,各种高级语言本身可能根本没有这些“概念”在里头,如IronScheme是一个在.NET平台上的Scheme语言实现,其中根本没有前面提到的这些IL——亦或说是.NET平台上的名词。IL本身并不知道自己是由哪种高级语言转化而来的,哪种语言中有哪些特性,IL也根本不会关心。通过中间语言IL,能够实现平台无关性。
JIT编译器并不是把整个应用程序一次编译完,而是只编译它调用的那部分代码。代码编译过一次后,得到的本地可执行程序就存储起来,直到退出该应用程序为止,这样在下次执行这部分代码时,就不需要重新编译了。
公共语言运行库环境执行的代码,而不是操作系统执行的代码。
当一个异常抛出时,它会改变程序的执行流程。因此不能保证一个语句结束后,它后面的语句一定会执行,在 C# 中这个问题可以用 finally 解决。
为了确保一个语句总是能执行(不管是否抛出异常),需要将该语句放到一个 finally 块中,finally 要么紧接在 try 块之后,要么紧接在 try 块之后的最后一个 catch 处理程序之后。只要程序进入与一个 finally 块关联的 try 块,则 finally 块始终都会运行 – 即使发生了一个异常。
标签:
原文地址:http://www.cnblogs.com/running-coder/p/4969500.html