.NET Framework 类库概述
更新:2007 年 11 月
.NET Framework 包括可加快和优化开发过程并提供对系统功能的访问的类、接口和值类型。为了便于语言之间进行交互操作,大多数 .NET Framework 类型都符合 CLS,因而可在编译器符合公共语言规范 (CLS) 的任何编程语言中使用。
.NET Framework 类型是生成 .NET 应用程序、组件和控件的基础。.NET Framework 包括的类型可执行下列功能:
表示基础数据类型和异常。
封装数据结构。
执行 I/O。
访问关于加载类型的信息。
调用 .NET Framework 安全检查。
提供数据访问、多客户端 GUI 和服务器控制的客户端 GUI。
.NET Framework 提供了一组丰富的接口以及抽象类和具体(非抽象)类。可以按原样使用这些具体的类,或者在多数情况下从这些类派生您自己的类。若要使用接口的功能,既可以创建实现接口的类,也可以从某个实现接口的 .NET Framework 类中派生类。
命名约定
.NET Framework 类型使用点语法命名方案,该方案隐含了层次结构的意思。此技术将相关类型分为不同的命名空间组,以便可以更容易地搜索和引用它们。全名的第一部分(最右边的点之前的内容)是命名空间名。全名的最后一部分是类型名。例如,System.Collections.ArrayList 表示 ArrayList 类型,该类型属于 System.Collections 命名空间。System.Collections 中的类型可用于操作对象集合。
此命名方案使扩展 .NET Framework 的库开发人员可以轻松创建分层类型组,并用一致的、带有提示性的方式对其进行命名。它还允许用全名(即命名空间和类型名称)明确地标识类型,这样可以防止类型名称发生冲突。库开发人员在创建命名空间的名称时应使用以下原则:
“公司名称.技术名称”
例如,Microsoft.Word 命名空间就符合此原则。
利用命名模式将相关类型分组为命名空间是生成和记录类库的一种非常有用的方式。但是,此命名方案对可见性、成员访问、继承、安全性或绑定无效。一个命名空间可以被划分在多个程序集中,而单个程序集可以包含来自多个命名空间的类型。程序集为公共语言运行库中的版本控制、部署、安全性、加载和可见性提供外形结构。
有关命名空间和类型名的更多信息,请参见通用类型系统。
System 命名空间
System 命名空间是 .NET Framework 中基本类型的根命名空间。此命名空间包括表示由所有应用程序使用的基本数据类型的类:Object(继承层次结构的根)、Byte、Char、Array、Int32、String 等。在这些类型中,有许多与编程语言所使用的基元数据类型相对应。当使用 .NET Framework 类型编写代码时,可以在应使用 .NET Framework 基础数据类型时使用编程语言的相应关键字。
下表列出了 .NET Framework 提供的基类型,并对每种类型进行了简单描述,同时指出了 Visual Basic、C#、C++ 和 JScript 中的相应类型。
类别 |
类名 |
说明 |
Visual Basic 数据类型 |
C# 数据类型 |
C++ 数据类型 |
JScript 数据类型 |
---|---|---|---|---|---|---|
整数 |
8 位的无符号整数。 |
Byte |
byte |
char |
Byte |
|
|
8 位的有符号整数。 不符合 CLS。 |
SByte |
sbyte |
signed char |
SByte |
|
|
16 位的有符号整数。 |
Short |
short |
short |
short |
|
|
32 位的有符号整数。 |
Integer |
int |
int - 或 - long |
int |
|
|
64 位的有符号整数。 |
Long |
long |
__int64 |
long |
|
|
16 位无符号整数。 不符合 CLS。 |
UShort |
ushort |
unsigned short |
UInt16 |
|
|
32 位无符号整数。 不符合 CLS。 |
UInteger |
uint |
unsigned int - 或 - unsigned long |
UInt32 |
|
|
64 位无符号整数。 不符合 CLS。 |
ULong |
ulong |
unsigned __int64 |
UInt64 |
|
浮点 |
单精度(32 位)浮点数字。 |
Single |
float |
float |
float |
|
|
双精度(64 位)浮点数字。 |
Double |
double |
double |
double |
|
逻辑运算 |
布尔值(真或假)。 |
Boolean |
bool |
bool |
bool |
|
其他 |
Unicode(16 位)字符。 |
Char |
char |
wchar_t |
char |
|
|
十进制(128 位)值。 |
Decimal |
decimal |
Decimal |
Decimal |
|
|
大小取决于基础平台(32 位平台上为 32 位值,64 位平台上为 64 位值)的有符号整数。 |
IntPtr 无内置类型。 |
IntPtr 无内置类型。 |
IntPtr 无内置类型。 |
IntPtr |
|
|
大小取决于基础平台的无符号整数(32 位平台上为 32 位值,64 位平台上为 64 位值)。 不符合 CLS。 |
UIntPtr 无内置类型。 |
UIntPtr 无内置类型。 |
UIntPtr 无内置类型。 |
UIntPtr |
|
类对象 |
对象层次结构的根。 |
Object |
object |
Object* |
Object |
|
|
Unicode 字符的不变的定长串。 |
String |
string |
String* |
String |
除了基本数据类型外,System 命名空间还包含 100 多个类,范围从处理异常的类到处理核心运行时概念的类,如应用程序域和垃圾回收器。System 命名空间还包含许多二级命名空间。
有关命名空间的更多信息,请浏览 .NET Framework 参考。此参考文档提供对每个命名空间的简要概述以及对每种类型及其成员的正式说明。