数据类型 |
|
|
|
值类型 |
简单值类型 |
|
名称 |
CTS类型 |
说明 |
范围 |
前界 |
后界 |
备注 |
|
|
|
整数类型 |
sbyte |
System.Sbyte |
8位有符合整数 |
(-2^7~2^7-1 ) |
-128 |
127 |
有符合 |
|
|
|
short |
System.Int16 |
16位有符合整数 |
(-2^15~2^15-1 ) |
-32768 |
32767 |
|
|
|
int |
System.Int32 |
32位有符合整数 |
(-2^31~2^31-1 ) |
-2.147E+09 |
2.15E+09 |
|
|
|
long |
System.Int64 |
64位有符合整数 |
(-2^63~2^63-1 ) |
-9.223E+18 |
9.22E+18 |
|
|
|
byte |
System.Byte |
8位无符合整数 |
0~2^8-1 |
0 |
255 |
无符号 |
|
转义字符 |
意义 |
ushort |
System.Uin16 |
16位无符合整数 |
0~2^16-1 |
0 |
65535 |
|
/' |
单引号 |
uint |
System.Uint32 |
32位无符合整数 |
0~2^32-1 |
0 |
4.29E+09 |
|
/" |
双引号 |
ulong |
System.Uint64 |
64位无符合整数 |
0~2^64-1 |
0 |
1.84E+19 |
|
// |
反斜杠 |
浮点数(实数) |
float |
System.Single |
32位单精度浮点数 |
|
|
|
|
|
/o |
空字符 |
double |
System.Double |
64位双精度浮点数 |
|
|
|
|
|
/a |
警告 |
decimal |
System.decimal |
128位双精度浮点数 |
|
|
|
|
|
/b |
退格符 |
|
名称 |
CTS类型 |
值域 |
|
|
|
|
|
/f |
换页符 |
布尔型 |
bool |
System.Boolean |
True / False |
|
|
|
|
|
/n |
换行符 |
字符型 |
char |
System.Char |
表示一个16位的Unicode字符 |
|
|
|
放在单引号中 |
C#的转义字符 |
/r |
回车符 |
复合值类型 |
名称 |
关键字 |
|
|
|
|
|
|
|
/t |
水平制表符 |
结构 |
struct |
|
|
|
|
|
|
|
/v |
垂直制表符 |
枚举 |
enum |
|
|
|
|
|
switch case |
|
|
|
引用类型 |
|
|
名称 |
CTS类型 |
说明 |
方法 |
|
|
|
内置引用类型 |
object |
System.Object |
基类型,CTS中的其他类型都是从它派生而来 |
Equal()、GetHashCode()、GetType()、ToString()等 |
|
|
|
String |
System.String |
Unicode字符串类型 |
完成字符串 连接、定位 子串定位等 |
放在双引号中 |
|
|
|
数组 |
int[] nVar=new int[100] |
|
|
|
类 |
class |
|
|
|
|
|
|
|
|
|
接口 |
interface |
|
|
|
|
|
|
|
|
|
备注: |
1、值类型与应用类型的区别 |
|
|
|
|
值类型: |
包括简单值类型(系统已定义好的如:数值类型、字符型、布尔型)和复合值类型(结构、枚举) |
|
|
|
|
引用类型: |
包括类、接口、数组 以及内置引用(objiec、string) |
|
|
|
|
值类型: |
数据长度固定 |
存放于栈内 |
|
|
|
|
|
|
|
|
|
|
引用类型: |
数据长度可变 |
存放于堆内 |
|
|
|
|
|
|
|
|
|
|
2、栈与堆的区别 |
|
|
|
|
数据结构 |
栈: |
机器系统提供,栈是系统数据结构,对于进程/线程是唯一的。 |
堆: |
设计工具(C/C++/C#)函数库提供,堆是函数库内部数据结构,对于进程/线程不一定唯一。 |
|
|
|
|
资源分配 |
由编译器自动分配、释放 |
一般由程序员分配释放。用new等分配得到的就是在堆上。 |
|
|
|
|
功能特点 |
栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活; |
而堆是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。 |
|
|
|