AYE89

coding & learning

导航

C#小结

Posted on 2017-08-01 18:11  AYE89  阅读(194)  评论(0编辑  收藏  举报

C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。

 

支持特性:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。

1:没有宏

2:单一继承,不允许继承多个父类

3:与COM(组件对象模型)是直接集成的

4:命名空间

 

解释型语言还是编译型语言?

C#是解释型语言也是静态类型语言。

 

一.语言结构

内存管理:由底层.NET框架进行自动内存垃圾回收。一个基本的C#类中包含数据成员、属性构造器和方法。属性可以是静态或实例成员。
 
编译:程序直接编译成标准的二进制可执行形式.但C#的源程序并不是被编译成二进制可执行形式,而是一种中间语言(IL),类似于JAVA字节码。如果前面的Hello World程序被保存成一个文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序
即source code --> byte code --> native code 
 
C#程序不能直接编译成标准的二进制可执行形式,与 Java 类似,它被编译成为中间代码(Microsoft Intermediate Language),然后通过 .NET Framework 的虚拟机——被称之为通用语言执行层(Common Language Runtime, CLR)——执行。
 
二、数据类型
两个基本类:一个名叫object的类是所有其他类的基类。而一个叫string的类.
 
 
三、程序执行
所有的.Net编程语言都被编译成这种被称为MSIL(Microsoft Intermediate Language )的中间代码。因此虽然最终的程序在表面上仍然与传统意义上的可执行文件都具有“.exe”的后缀名。但是实际上,如果计算机上没有安装.Net Framework,那么这些程序将不能够被执行。 
 
在程序执行时,.Net Framework将中间代码翻译成为二进制机器码,从而使它得到正确的运行。最终的二进制代码被存储在一个缓冲区中。所以一旦程序使用了相同的代码,那么将会调用缓冲区中的版本。这样如果一个.Net程序第二次被运行,那么这种翻译不需要进行第二次,速度明显加快。(MSIL到机器码只翻译一次