C#入门系列 -- 数据类型
一,概念和分类
计算机中处理的数据既可以是数值,也可以是文字。由于计算机存储数值和文字的形式不同,造成了对它们的处理方式也不相同。因此,编程时需要明确的指出所处理数据的类型。
C#语言的数据类型分为两大类:值类型和引用类型。
二,整数类型
C#中的整型分为有符号和无符号两大类,C#编译器使用整型数据的高阶位作为符号标志,符号标志为0表示正数,符号标志为1表示负数。
根据有无符号以及数据在内存中分配的空间大小,C#把整型分成8个类型。
类别 | 位数 | 类型标识符 | 范围 |
---|---|---|---|
有符号整型 | 8 | sbyte | –128…127 |
有符号整型 | 16 | short | –32,768…32,767 |
有符号整型 | 32 | int | –2,147,483,648…2,147,483,647 |
有符号整型 | 64 | long | –9,223,372,036,854,775,808…9,223,372,036,854,775,807 |
无符号整型 | 8 | byte | 0…255 |
无符号整型 | 16 | ushort | 0…65,535 |
无符号整型 | 32 | uint | 0…4,294,967,295 |
无符号整型 | 64 | ulong | 0…18,446,744,073,709,551,615 |
三,实数类型
C#有三个实数类型,分别是浮点型float和double以及高精度小数型decimal。
float是32位的单精度小数类型,double是64位的双精度小数型,而decimal表示128 位的高精度小数型。
类别 | 位数 | 类型标识符 | 范围/精度 |
---|---|---|---|
IEEE浮点型 | 32 | float | -3.4 × 10 38 到 +3.4 × 10 38,7位精度 |
IEEE浮点型 | 64 | double | ±5.0 × 10 -324 到 ±1.7 × 10 308,15 位或16位精度 |
高精度小数型 | 128 | decimal | (-7.9 x 10 28 - 7.9 x 10 28) / (10 0 - 28),28 位或29位精度 |
四,字符和字符串
C#提供了字符和字符串类型来描述文本信息。C#内置支持Unicode。
C#的字符类型记为char,可表示中文字符、英文字符或者数字等。
char类型数据在内存中占2个字节,最多可描述216即65536个符号。
C#的字符串类型记为string,它用以描述包含零个、一个或多个Unicode标准字符的字符序列。
五,布尔型
C#采用布尔类型描述实际应用中“真”和“假”、“成立”和“不成立”或“存在”和“不存在”的情况。
布尔类型的类型标识符为bool,可能值为 true 和 false,其中true用以表示“真”、“成立”或“存在”的情况,而false则表示“假”、“不成立”或“不存在”。
bool类型数据在内存中占1个字节,并且不能和整数1与0转换。
六,引用类型
引用类型不包含存储在变量中的实际数据,但它们包含对变量的引用。
换句话说,它们指的是一个内存位置。使用多个变量时,引用类型可以指向一个内存位置。如果内存位置的数据是由一个变量改变的,其他变量会自动反映这种值的变化。内置的 引用类型有:object、dynamic 和 string。
对象(Object)类型
对象(Object)类型 是 C# 通用类型系统(Common Type System - CTS)中所有数据类型的终极基类。Object 是 System.Object 类的别名。所以对象(Object)类型可以被分配任何其他类型(值类型、引用类型、预定义类型或用户自定义类型)的值。但是,在分配值之前,需要先进行类型转换。
当一个值类型转换为对象类型时,则被称为 装箱;另一方面,当一个对象类型转换为值类型时,则被称为 拆箱。
- 点赞
- 收藏
- 关注作者
评论(0)