变量
除了以下差异,C# 中的变量几乎和 C++ 中一样:
1. C# 中(不同于 C++)的变量,总是需要你在访问它们前先进行初始化,否则你将遇到编译时错误。故而,不可能访问未初始化的变量。
2. 你不能在 C# 中访问一个“挂起”指针。
3. 超出数组边界的表达式索引值同样不可访问。
4. C# 中没有全局变量或全局函数,取而代之的是通过静态函数和静态变量完成的。
数据类型
所有 C# 的类型都是从 object 类继承的。有两种数据类型:
1. 基本/内建类型
2. 用户定义类型
以下是 C# 内建类型的列表:
类型 字节 描述
byte 1 unsigned byte
sbyte 1 signed byte
short 2 signed short
ushort 2 unsigned short
int 4 signed integer
uint 4 unsigned integer
long 8 signed long
ulong 8 unsigned long
float 4 floating point number
double 8 double precision number
decimal 8 fixed precision number
string - Unicode string
char - Unicode char
bool true, false boolean
注意:C# 的类型范围和 C++ 不同。例如:long 在 C++ 中是 4 字节而在 C# 中是 8 字节。bool 和 string 类型均和 C++ 不同。bool 仅接受真、假而非任意整数。
用户定义类型文件包含:
1. 类 (class)
2. 结构(struct)
3. 接口(interface)
以下类型继承时均分配内存:
1. 值类型
2. 参考类型
值类型
值类型是在堆栈中分配的数据类型。它们包括了:
? 除字符串,所有基本和内建类型
? 结构
? 枚举类型

