《C#入门经典教程》
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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) 包含标准数据类型 包含准则集
对于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) 包含标准数据类型 包含准则集