《C#入门经典教程》

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
对于C/C++用户来说,最理想的解决方案无疑是在快速开发的同时 又可以调用底层平台的所有功能。他们想要一种和最新的网络标准保 持同步并且能和已有的应用程序良好整合的环境。另外,一些 C/C++开发人员还需要在必要的时候进行一些底层的编程。 C# (C sharp) 是对这一问题的解决方案。C#是一种新的、面向对 象的编程语言。它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序,Microsoft .NET提供了一系列的工具和服务 来最大程度地开发利用计算与通讯领域。
对象

基本类型
接口 数组 引用类型
结构 枚举 值类型
CLS、CTS 和 MSIL 紧密配合以实现语言互操作性
15
4 命名空间
命名空间就像在文件系统中一个文件夹容纳多 个文件一样,可以看作某些类的一个容器。通 过把类放入命名空间可以把相关的类组织起来, 并且可以避免命名冲突。命名空间既用作程序 的“内部”组织系统,也用作“外部”组织系 统(一种向其他程序公开自己拥有的程序元素 的方法) 使用命名空间:using 类似#include
第1章 C#与NET平台介绍 本章目标
了解.NET Framework 的结构 理解.NET Framework 的基本概念
CLR JIT CTS MSIL
了解 .NET Framework 命名空间 了解C#程序的基本结构
1
1 C#语言的由来
在过去的二十年里,C和C++已经成为在商业软件的开发领域中 使用最广泛的语言。它们为程序员提供了十分灵活的操作,不过 同时也牺牲了一定的开发效率。与VB等语言相比,同等级别的 C/C++应用程序往往需要更长时间来开发。由于C/C++语言的 复杂性,许多程序员都试图寻找一种新的语言,希望能在功能与 效率之间找到一个更为理想的权衡点。 VB以牺牲灵活性的代价来提高效率。可是这些灵活性正是 C/C++程序员所需要的。这些解决方案对编程人员的限制过多( 如屏蔽一些底层代码控制的机制),所提供的功能难以令人满意 。这些语言无法方便地同早先的系统交互,也无法很好地和当前 的网络编程相结合。
4
2 .NET代码的编译 语言特定的编译器和运行库
VB
编译器
可执行
R U
代码 N
T I
M
E
R
ቤተ መጻሕፍቲ ባይዱ
U
C++ 编译器
可执行 代码
N T I
M
E
5
代码 被执行
IL 和 CLR 的使用
Intermediate Language Common Language Runtime
VB
编译器
C++ 编译器
可执行
R
代IL码
13
.NET Framework 的体系结构
Visual Studio .NET
.Net Framework 类 库 (FCL)
VB C++ C# JScript …
通用语言规范(CLS)
XML Web services
Web Forms Windows Forms
Data and XML
Base Class Library:
不同语言编写的代码可互相调用
C#的平台移植性:
框架 JIT编译器(Just In Time, 即时编译器)
12
3 .NET Framework 简介
.NET Framework类似于JVM .NET Framework 两个主要组件:
通用语言运行时 (CLR) 统一的类库集
.NET的类库:
线程 文件输入/输出 (I/O) 数据库支持 XML 解析 数据结构……
3
C#语言的特点:
C#语言是Microsoft发布的一种全新的编程语言,是 其.Net战略的一枚重要棋子。 C#语言是面向对象的、现代的编程语言,用C#编写的应 用程序可以充分利用.Net的框架体系带来的优点.既可以 用来编写基于通用网络协议的Internet服务软件,也可以 编写各种数据库、网络服务应用程序和Windows窗口界 面程序。 C#继承了C/C++的优点和灵活性,能够充分利用OS系 统的底层功能,同时又具备了完全的面向对象特性。可以 让初学者直接了解面向对象编程的各种概念,学习现代的 编程思想和手段。
程序集
清单 元数据 中间语言
client.exe
清单 元数据 中间语言
clientlib.dll
清单 元数据 中间语言
元数据 中间语言
client.exe clientlib.netmodule
9
IL语言范例
IL_0000: nop IL_0001: call IL_0006: nop IL_0007: ldc.i4.0 IL_0008: call IL_000d: nop IL_000e: ldnull IL_000f: ldftn IL_0015: newobj IL_001a: call IL_001f: nop IL_0020: newobj IL_0025: call IL_002a: nop IL_002b: newobj IL_0030: throw
10
通用语言运行时CLR
.NET 源 代码
语言 编译器
CLR MSIL + 元数据
机器 代码
代码 被执行
管理内存
易于设计组件和应用程 序,其对象可以跨语言 互动
跨语言集成(特别 是跨语言继承)
JIT 编译器:一次编译,就可 运行在支持运行库的任何 CPU 和操作系统上
11
.NET的语言互操作性:
+ 可元执行数据
U
N
CT
I
LM
E
R U
代码
RN T
I
M
E
6
代码 被执行
编译执行 .NET 程序
.NET 源 代码
语言 编译器
MSIL
+ 元数据
CLR
机器 代码
代码 被执行
第二次编译 第一次编译 .NET 程序被编译两次,第一次编译很慢,而第二次 编译较快!
7
Microsoft 中间语言
.NET 源 代码
MSIL 语言
编译器
MSIL
+ 元数据
CLR
机器 代码
代码 被执行
帮助语言实现互 操作
IL 不是字节代码,但很接 近字节代码。因此,执行 应用程序时,IL 到机器码 的转换速度非常快!
通过 CLR将 MSIL 转换为具体 CPU 的 代码
CPU 无关的指令集
8
清单 元数据 中间语言
client.exe
IO, Drawing, Threading
CLR通用语言运行时 (CLR)
操作系统
14
CLS和CTS
通用语言规范 CLS
Common Language Specification
规定所有 .NET 语言都应 遵循的规则 生成可与其他语言互操作 的应用程序 通用类型系统 (Common Type System, CTS) 包含标准数据类型 包含准则集
相关文档
最新文档