Net框架和C语言介绍.docx
- 文档编号:231410
- 上传时间:2022-10-07
- 格式:DOCX
- 页数:7
- 大小:28.61KB
Net框架和C语言介绍.docx
《Net框架和C语言介绍.docx》由会员分享,可在线阅读,更多相关《Net框架和C语言介绍.docx(7页珍藏版)》请在冰豆网上搜索。
附录A:
.NetFramework和C#语言介绍
一、.NETFramework
1.1概述
.NETFramework是支持生成和运行下一代应用程序和XMLWebservices的内部Windows组件。
.NETFramework旨在实现下列目标:
1、提供一个一致的面向对象的编程环境,而无论对象代码是在本地存储和执行,还是在本地执行但在Internet上分布,或者是在远程执行的。
2、提供一个将软件部署和版本控制冲突最小化的代码执行环境。
3、提供一个可提高代码(包括由未知的或不完全受信任的第三方创建的代码)执行安全性的代码执行环境。
4、提供一个可消除脚本环境或解释环境的性能问题的代码执行环境。
5、使开发人员的经验在面对类型大不相同的应用程序(如基于Windows的应用程序和基于Web的应用程序)时保持一致。
6、按照工业标准生成所有通信,以确保基于.NETFramework的代码可与任何其他代码集成。
.NETFramework具有两个主要组件:
公共语言运行库和.NETFramework类库。
公共语言运行库是.NETFramework的基础。
您可以将公共语言运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。
这类似于Java的虚拟机。
事实上,代码管理的概念是公共语言运行库的基本原则。
以公共语言运行库为目标的代码称为托管代码,而不以公共语言运行库为目标的代码称为非托管代码。
.NETFramework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,您可以使用它开发多种应用程序,这些应用程序包括传统的命令行或图形用户界面(GUI)应用程序,也包括基于ASP.NET所提供的最新创新的应用程序(如Web窗体和XMLWebservices)。
1.2客户端应用程序开发
客户端应用程序在基于Windows的编程中最接近于传统风格的应用程序。
这些是在桌面上显示窗口或窗体从而使用户能够执行任务的应用程序类型。
客户端应用程序包括诸如字处理程序和电子表格等应用程序,还包括自定义的业务应用程序(如数据输入工具、报告工具等等)。
客户端应用程序通常使用窗口、菜单、按钮和其他GUI元素,并且它们可能访问本地资源(如文件系统)和外围设备(如打印机)。
另一种客户端应用程序是作为网页通过Internet部署的传统ActiveX控件(现在被托管Windows窗体控件所替代)。
此应用程序非常类似于其他客户端应用程序:
它在本机执行,可以访问本地资源,并包含图形元素。
过去,开发人员结合使用C/C++与Microsoft基础类(MFC)或应用程序快速开发(RAD)环境(如Microsoft®VisualBasic®)来创建此类应用程序。
.NETFramework将这些现有产品的特点合并到了单个且一致的开发环境中,该环境大大简化了客户端应用程序的开发。
包含在.NETFramework中的Windows窗体类旨在用于GUI开发。
您可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。
例如,.NETFramework提供简单的属性以调整与窗体相关联的可视属性。
某些情况下,基础操作系统不支持直接更改这些属性,而在这些情况下,.NETFramework将自动重新创建窗体。
这是.NETFramework集成开发人员接口从而使编码更简单更一致的许多方法之一。
和ActiveX控件不同,Windows窗体控件具有对用户计算机的不完全受信任的访问权限。
这意味着二进制代码或在本机执行的代码可访问用户系统上的某些资源,例如GUI元素和访问受限制的文件,但这些代码不能访问或危害其他资源。
由于具有代码访问安全性,许多曾经需要安装在用户系统上的应用程序现在可以通过Web部署。
您的应用程序可以在像网页那样部署时实现本地应用程序的功能。
1.3.NETFramework版本
.NETFramework1.1
.NETFramework2.0
.NETFramework3.0
.NETFramework3.5
最新版:
.NETFramework4Beta2
1.4.net框架
.NET框架是一个多语言组件开发和执行环境,它提供了一个跨语言的统一编程环境。
.NET框架的目的是便于开发人员更容易地建立Web应用程序和Web服务,使得Internet上的各应用程序之间,可以使用Web服务进行沟通。
从层次结构来看,.NET框架又包括三个主要组成部分:
公共语言运行时(CLR:
CommonLanguageRuntime)、服务框架(ServicesFramework)和上层的两类应用模板——传统的Windows应用程序模板(WinForms)和基于ASP.NET的面向Web的网络应用程序模板(WebForms和WebServices)。
公共语言运行时(CLR),是一个运行时环境,管理代码的执行并使开发过程变得更加简单。
CLR是一种受控的执行环境,其功能通过编译器与其它工具共同展现。
在CLR之上的是服务框架,它提供了一套开发人员希望在标准语言库中存在的基类库,包括集合、输入/输出、字符串及数据类。
二、C#语言介绍
2.1概述
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
C#是微软公司研究员AndersHejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。
2.2C#简介
C#(读做"Csharp",中文译音暂时没有,专业人士一般读"Csharp",现在很多非专业一般读"C井"。
C#是一种安全的、稳定的、简单的,由C和C++衍生出来的面向对象的编程语言。
它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏和模版,不允许多重继承)。
C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
并且C#成为ECMA与ISO标准规范。
C#看似基于C++写成,但又融入其它语言如Delphi、Java、VB等。
微软C#语言定义主要是从C和C++继承而来的,而且语言中的许多元素也反映了这一点.C#在设计者从C++继承的可选选项方面比Java要广泛一些(比如说struts),它还增加了自己新的特点(比方说源代码版本定义).但它还太不成熟,不可能挤垮Java。
C#还需要进化成一种开发者能够接受和采用的语言.而微软当前为它的这种新语言大造声势也是值得注意的.目前大家的反应是:
"这是对Java的反击"。
2.3C#从Java继承而来的特点
类:
在C#中类的申明与Java很相似.这是合理的因为经验告诉我们Java模型工作得很好。
Java的关键字import已经被替换成using,它起到了同样的作用。
一个类开始执行的起点是静态方法Main()。
下面的HelloWorld程序展示了基本的形式:
usingSystem;
classHello
{
staticvoidMain()
{
Console.WriteLine("Hello,world");
}
}
在这个例子中,System这个名字指向一个包括了基本C#实用类集合的命名空间(namespace)。
这个命名空间包括了Console类,它在这个例子中被用来输出一个字符串.类可以是抽象的和不可继承的:
一个被申明成abstract的类不能被实例化;它只能被用做一个基类.C#关键字sealed就象Java关键字final,它申明一个类不是抽象的,但是它也不能被用做另一个类的基类.接口:
就象在Java中一样,一个接口是一组方法集合的抽象定义.当一个类或结构体实现一个接口的时候,它必须实现这个接口中定义的所有方法.一个单一的类可以实现几个接口.也许以后会出现一些微妙的差别,但是这个特点看起来与Java相比没有变化.布尔运算:
条件表达式的结果是布尔数据类型,布尔数据类型是这种语言中独立的一种数据类型.从布尔类型到其他类型没有直接的转换过程.布尔常量true和false是C#中的关键字.错误处理:
如Java中那样,通过抛出和捕捉异常对象来管理错误处理过程.内存管理:
由底层.NET框架进行自动内存垃圾回收。
2.4C#从C和C++继承的特点
编译:
程序直接编译成标准的二进制可执行形式。
但C#的源程序并不是被编译成二进制可执行形式,而是一种中间语言,类似于JAVA字节码。
如果前面的HelloWorld程序被保存成一个文本文件并被命名为Hello.cs,它将被编译成命名Hello.exe的可执行程序。
结构体:
一个C#的结构体与C++的结构体是相似的,因为它能够包含数据声明和方法。
但与C++不同的是,C#结构体与类是不同的而且不支持继承。
他又与Java有相同的地方,就是一个结构体可以实现接口。
预编译:
C#中存在预编译指令支持条件编译,警告,错误报告和编译行控制。
可用的预编译指令有:
#define
#undef
#if
#elif
#else
#endif
#warning
#error
#line[]
没有了#include伪指令。
你无法再用#define语句对符号赋值,所以就不存在源代码替换的概念--这些符号只能用在#if和#elif伪指令里。
在#line伪指令里的数字(和可选的名字)能够修改行号还有#warning和#error输出结果的文件名。
操作符重载一些操作符能够被重载,而另一些则不能.特别的是,没有一个赋值运算符能够被重载.能够被被重载的单目操作符是:
+-!
~++--truefalse
能够被重载的二元运算符是:
+-*/%&|^<<>>==!
=><>=<=
2.5C#独有的特点
C#最引人入胜的地方是它和Java的不同,而不是相似的地方。
中间代码
微软在用户选择何时MSIL应该编译成机器码的时候是留了很大的余地。
微软公司很小心的声称MSIL不是解释性的,而是被编译成了机器码。
它也明白许多--如果不是大多数的话--程序员认为Java程序要不可避免的比C编写的任何东西都要慢。
而这种实现方式决定了基于MSIL的程序(指的是用C#,VisualBasic,"ManagedC++"等语言编写的程序)将在性能上超过"解释性的"Java代码。
当然,这一点还需要得到事实证明,因为C#和其他生成MSIL的编译器还没有发布。
但是JavaJIT编译器的普遍存在使得Java和C#在性能上相对相同。
象"C#是编译语言而Java是解释性的,"之类的声明只是商业技巧.Java的中间代码和MSIL都是中间的汇编形式的语言,它们在运行时或其它的时候被编译成机器代码。
命名空间中的申明
当你创建一个程序的时候,你在一个命名空间里创建了一个或多个类。
同在这个命名空间里(在类的外面)你还有可能声明接口,枚举类型和结构体。
必须使用usi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Net 框架 语言 介绍
![提示](https://static.bdocx.com/images/bang_tan.gif)