成功不是最终的,失败不是致命的,继续前进的勇气才是最重要的。 ——温斯顿·丘吉尔
基本定义
C# 中内置了一些基本的数据类型,数据类型用于指定程序中变量、常量或表达式可以存储的数据的类型
C# 中的数据类型可以分为三大类:
- 值类型 (Value types)
- 引用类型 (References types)
- 指针类型 (Pointer types)
值类型
对于值类型的变量我们可以直接为其分配一个具体的值,每个值类型变量都有自己独立的内存空间,对一个变量的操作不会影响其他变量
如下是一些基本的值类型:
值类型可以分为四大类:
整型
- 用于储存整数,不含小数
- 整型根据占用字节数又分为不同的类型,并且还分有符号整数和无符号整数
有符号整数 无符号整数 sbyte byte int uint long ushort short ulong
浮点型
- 用于储存包含整数部分和小数部分的数据
- 根据精度不同,浮点型共分为:
float (单精度浮点型)
double (双精度浮点型)
decimal (高精度浮点型) - 浮点型数据的默认类型都是 double
布尔类型
- bool类型是一种用于表示逻辑值的值类型,其仅能取
true或false这两个值 - bool类型的数据的默认值为
false
1 | byte count = 23; |
字符型
- 字符型 (char) 用于表示单个 Unicode 字符
- 通过 char 关键字声明的字符型字面量必须用单引号包裹
- char 类型可表示 Unicode 字符集中从 \u0000 到 \uffff 的字符,其数值范围(0~65535)与 16 位无符号整数相同,且可通过强制转换与整数类型互通
1 | char c = 'A'; |
- 无法直接打印的功能性字符,需用转义序列表示:
1 | /* |
可空类型的定义与声明方式
可空类型(Nullable Types)是一种特殊的数据类型,允许值类型接收 null 值
可空类型的声明方式主要有两种:
- 通过在值类型名后添加
?符号来声明一个可空类型
1 | int? a = null; |
- 也可以使用泛型形式
Nullable<T>(T为值类型) 声明,两种方式完全等效
1 | Nullable<byte> count = null; |
可空类型的常用属性
可空类型提供两个重要属性来判断和获取值:
- HasValue 该属性是一个布尔值,当其为
true时表示该变量有值 (非 null),false则表示其为 null - Value 获取变量存储的实际值(仅当 HasValue 为
true时有效,否则会抛出异常)
1 | byte? score = null; |
Null合并运算符
可空类型常与 ?? 运算符结合使用,用于为 null 值提供默认值
1 | int? num = null; |