数据类型 | ||||||||||||
值类型 | 简单值类型 | 名称 | 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等分配得到的就是在堆上。 | ||||||||||
功能特点 | 栈是系统提供的功能,特点是快速高效,缺点是有限制,数据不灵活; | 而堆是函数库提供的功能,特点是灵活方便,数据适应面广泛,但是效率有一定降低。 | | | |