您的位置:首页 > 编程语言 > C#

浅识C#

2017-02-07 22:40 281 查看
C#编程语言

C#是微软公司在.NET框架之上而开发的一种编程语言。C#的正确发音:See Sharp。

C#之前的Windows编程

20世界90年代末,在使用微软平台的Windows编程中,大多数程序员使用Visual Basic(VB)、C或C++。一些C和C++程序员在使用纯Win32
API,但大多数人在使用MFC(Microsoft Foundation Class,微软基础类库)。其他人已经转向COM(Component Object Model,组件对象模型)。

所有这些技术都有自己的问题。纯Win32 API不是面向对象的,而且使用它的工作量比使用MFC的更大。MFC是面向对象的,但是它却不一致。COM概论简单,但代码复杂且不够优雅。

所有这些编程技术还有一个共同的缺点就是它们主要是针对桌面程序,而没有考虑到Internet开发。

C#的制定

C#的制定目标:集成的、面向对象的开发框架,一致且优雅。



.NET
2002年,微软发布了.NET框架的第一个版本。.NET框架是一种比MFC和COM编程技术更一致并面向对象的环境。它的特点有:
多平台 可以在多种平台上运行,从服务器、桌面机到PDA,还能在移动端运行。
行业标准 该系统使用行业标准的通讯协议,比如XML、HTTP、SOAP、JSON和WSDL。
安全性 有更加安全的执行环境。
.NET框架的组成
.NET框架由编程工具、CLR、BCL组成。主要说说CLR和BCL。
CLR 全称Common Language Runtime,公共语言运行库。主要包括的内容有:内存管理和垃圾收集,代码安全验证,代码执行、线程管理及异常处理。
BCL 全称Base Class Library,基类库。是.NET框架使用的一个大的类库。(FCL是BCL的超级,FCL框架类库)。
C#的优势
面向对象 CLR、BCL和C#完全是面向对象的,高集成的。
GC垃圾收集 CLR有GC(Garbage Collector,垃圾收集器),能够自动管理内存(GC自动从内存中删除程序不在访问的对象)。
互操作性 .NET语言互操作性允许用不同的.NET语言编写的软件模块无缝的交互;允许.NET的代码调用并非.NET的代码,他可以使用标准Win32 DLL导出的纯C函数的代码;.NET框架还允许与COM进行互操作。
基类库 .NET提供了一个庞大的基础类库,称为基类库(Base Class Library,BCL)。(有时称为框架类库--Framwork Class Library,FCL)。
编译成CIL
.NET语言的编译器接受源代码文件,并生成名为程序集的输出文件。



编译成本机代码并执行
程序的CIL直到它被调用运行时才会被编译成本机代码。CLR执行步骤:检查程序集的安全特性;在内存中分配空间;把程序集中的可执行代码发送给实时(Just-in-Time,JIT)编译器,把其中的一部分编译成本机代码。
一旦CIL被编译成本机代码,CLR就在它运行时管理它,执行像释放没使用的内存、检查数组边界、检查参数类型和管理异常之类的任务。有两个重要术语:托管代码--为.NET框架编写的代码称为托管代码(managed code),需要CLR;非托管代码--不在CLR控制之下运行的代码,比如win32
C/C++ DLL,称为非托管代码(unmanaged code)。
微软公司还提供了一个称为本机映像生成器的工具Ngen,可以把一个程序集转换成当前处理器的本机代码。经过Ngen处理过的代码免除了运行时的JIT编译过程。
编译和执行
无论原始文件的语言是什么,都遵循同样的编译和执行过程。



CLR
.NET框架的核心组件就是CLR,它在操作系统的顶层,负责管理程序的执行。



CLI
CLI(Common Language Infrastructure,公共语言基础结构)把所有.NET框架的组件连结成一个内聚的、一致的系统。



CLI主要由CTS(Common Type System,公共类型系统,定义了那些在拓公关代码中一定会使用的类型特征)、CLS(Common Language Specification,公共语言规范,详细说明了一个.NET兼容编程语言的规则、属性和行为,其主体包括数据类型、类结构和参数传递)组成。
C#的一些缩写和版本更新
缩写:



版本更新:





推荐书籍 C#图解教程(C#5.0)第4版
       【下载】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 学习C#