整数类型
数据类型 | 含义 | 取值范围 |
后缀 (不区分大小写) |
sbyte | 有符号8位 |
-128 ~ 127 | |
byte | 无符号8位 |
0 ~ 255 | |
short | 有符号16位 |
-32,768 ~ 32,767 | |
ushort | 无符号16位 |
0 ~ 65,535 | |
int | 有符号32位 |
-2,147,483,648 ~ 2,147,483,647 | |
uint | 无符号32位 |
0 ~ 4,294,967,295 | u(可不加) |
long | 有符号64位 |
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | l(可不加) |
ulong | 无符号64位 |
0 ~ 18,446,744,073,709,551,615 | ul或LU(可不加) |
在项目中合理选择来存放整数数据,以避免浪费资源.
浮点数类型
数据类型 | 含义 | 取值范围 | 有效数字 |
后缀 (不区分大小写) |
float |
32位浮点数/单精度浮点数 |
±1.5 × | 7 | f(必须加) |
double |
64位浮点数/双精度浮点数 | ±5.0 × | 15~16 | d(可不加) |
浮点数的精度是可变的.除非用分数表示时分母是2的整数次幂,否则用二进制浮点类型无法准确地表示该数.
浮点数的精度由有效数字的个数决定.根据定义,浮点数的精度与它所代表的数字的大小成正比.
十进制浮点数类型
数据类型 |
大小 |
取值范围 |
有效数字 |
后缀 (不区分大小写) |
decimal | 128位 | ±1.0 × | 28 ~ 29 | m(必须加) |
布尔类型/条件类型
Boolean/bool
有且只有两种取值:true(真)和false(假)
字符类型
char
表示16位字符,其取值范围对应于Unicode字符集。
Unicode标准:
Unicode是一个国际性标准,用来表示大多数语言中的字符。
它便于计算机系统构建本地化的应用程序,为不同的语言文化显示具有本地特色的字符。
字符串类型
string
零或多个字符组成的有限序列称为字符串。
上面类型中,除了字符串类型,8种整数类型+2种二进制浮点类型+1种十进制浮点类型+1种布尔类型+1种字符类型,称为预定义类型(predefined type).
C#的所有基本类型都有短名称和完整名称.完整名称对应于BCL(Base Class Library,基类库)中的类型命名.该名称在所有语言中都是相同的,而且对程序集里的类型进行了唯一性标识.由于基本数据类型是其它类型的基础,所以C#为基本数据类型的完整名称提供了短名称或缩写的关键字.从编译器的角度看,两种名称代表同一个数据类型,最终都生成相同的代码.事实上,检查最终生成的CIL代码,根本看不出源代码中具体使用的名称.
C#既支持完整BCL名称,也支持关键字.使用时一般使用C#关键字.但是,不管使用哪一种,都要保持一致,不要变来变去.
字面量或字面值(literal value):表示源代码中的固定值.
直接将值放到源代码中称为硬编码(hardcoding).