C#笔记05 数据类型转换
——本系列是基于人民邮电出版社《C#2008 C#图解教程》、清华大学出版社《C#入门经典(第五版)》两本书的自学C#笔记,如果您发现了本文的纰漏,还望不吝指正。
写在前边
无论是什么类型,所有的数据都是一系列的位,即一系列0和1。变量的含义是通过解释这些数据的方式来传达的。最简单的示例是char 类型,这种类型用一个数字表示Unicode字符集中的一个字符。实际上,这个数字与ushort 的存储方式完全相同——它们都存储0~65535之间的数字。——清华大学出版社《C#入门经典(第五版)》
转化(conversion)是接受一个类型的值并使用它作为另一个类型的等价值的过程,转换后的值应和源值一样的,但是它是目标类型。———人民邮电出版社《C#2008 C#图解教程》
类型转换采用以下两种形式:
- 隐式转换
- 显式转换
1. 隐式转换
从类型A到类型B的转换可以在所有情况下进行,执行转换的规则非常简单,编译器执行转换。
short a = 10;
int b = a;
编译器可以隐式执行的数值转换
类型 | 可以安全地转换为 |
---|---|
byte | short, ushort, int, uint, long, ulong, float, double, decimal |
sbyte | short, int, long, float, double, decimal |
short | int, long, float, double, decimal |
ushort | int, uint, long, ulong, float, double, decimal |
int | long, float, double, decimal |
uint | long, ulong, float, double, decimal |
long | float, double, decimal |
ulong | float, double, decimal |
float | double |
char | ushort, int, uint, long, ulong, float, double, decimal |
任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类