在学习C#时,在有一定编程基础的情况下,你会发现C#里有很多知识点与其他编程语言有着相似的地方。
C#的数据类型有7种,分别是 值类型 ,引用类型 ,整型(默认为int), 浮点型(默认为double) ,字符型(char) ,布尔类型 ,字符串类型 。
下面我们一个个的去了解C#的数据类型的内容。
1.值类型值类型包含以下几种类型: 整型 ,浮点型 ,字符型 ,布尔型 ,枚举型。
值类型的存储
从内存存储空间的角度而言,值类型的值是存放到栈中的,每次存取值都会在该内存中操作;
2.引用类型引用类型包含以下几种类型: 类,接口 ,数组 ,委托 ,字符串 。
引用类型的存储
引用类型首先会在栈中创建一个引用变量,然后在堆中创建对象本身,再把这个对象所在内存的首地址赋给引用变量。
3.整型(默认为int)所谓整型就是存储整数的类型,按照存储值的范围不同,C# 语言将整型分成了 byte 类型、short 类型、int 类型、long 类型等,并分别定义了有符号数和无符号数。
有符号数可以表示负数,无符号数仅能表示正数。
具体的整数类型及其表示范围如下表所示。
| 类 型 | 取值范围 |
| sbyte | 有符号数,占用1个字节,-27〜27-1 |
| byte | 无符号数,占用1个字节,0〜28-1 |
| short | 有符号数,占用2个字节,-215〜215-1 |
| ushort | 无符号数,占用2个字节,0〜216-1 |
| int | 有符号数,占用4个字节,-231〜231-1 |
| uint | 无符号数,占用4个字节,0〜232-1 |
| long | 有符号数,占用8个字节,-263〜263-1 |
| ulong | 无符号数,占用8个字节,0〜264-1 |
从上面的表中可以看出 short、int 和 long 类型所对应的无符号数类型都是在其类型名称前面加上了 u 字符,只有 byte 类型比较特殊,它存储一个无符号数,其对应的有符号 数则是 sbyte。
此外,在 C# 语言中默认的整型是 int 类型。
4.浮点型(默认为double)
浮点型浮点型是指小数类型,浮点型在 C# 语言中共有两种,一种称为单精度浮点型,一种称为双精度浮点型。
两种类型
单精度浮点型(float)
关于浮点型的具体说明如下表所示。
| 类 型 | 取值范围 |
| float | 单精度浮点型,占用4个字节,最多保留7位小数 |
| double | 双精度浮点型,占用8个字节,最多保留16位小数 |
在 C# 语言中默认的浮点型是 double 类型。如果要使用单精度浮点型,需要在数值后 面加上 f 或 F 来表示,例如 123.45f、123.45F。
5.字符型(char)
字符型 用 char 关键字表示,存放到 char 类型的字符需要使用单引号括起来,例如 'a'、'中' 等
只能存放一个字符,它占用两个字节,能存放一个汉字。
6.布尔类型
布尔类型在 C# 语言中,布尔类型使用 bool 来声明,它只有两个值,即 true 和 false。
布尔类型的值也被经常用到条件判断的语句中,例如,判断某个值是否为偶数、判断某个日期 是否是工作日等。
7.字符串类型
能存放多个字符,它是一个引用类型,在字符串类型中存放的字符数可以认为是没有限制的,因为其使用的内存大小不是固定的而是可变的。
使用 string 关键字来存放字符串类型的数据。字符串类型的数据必须使用双引号括起来,例如 "abc"、"123" 等。
8.转义字符
在 C# 语言中还有一些特殊的字符串,代表了不同的特殊作用。由于在声明字符串类型的数据时需要用双引号将其括起来,那么双引号就成了特殊字符,不能直接输出,转义字符的作用就是输出这个有特殊含义的字符。
转义字符非常简单,常用的转义字符如下表所示。
| 转义字符 | 等价字符 |
| ' | 单引号 |
| " | 双引号 |
| \ | 反斜杠 |


