C#是一门强类型语言,对类型要求比较严格,但是在一定的条件下也是可以相互转换的,如将int型数据转换成double型数据。
C#允许使用两种转换方式:隐式转换和显示转换。
1、隐式类型转换
①隐式类型转换是C#默认的以安全方式进行的转换,不会导致数据丢失。例如,从小的整数类型转换为大的整数型、从派生类转换为基类。
②隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成存储范围大的数据类型。
示例代码如下:
隐式数值转换包括以下几种:
- 从sbyte类型到 short, int, long, float, double, 或decmial类型。
- 从btye类型到short, ,ushort, int, uint, long, ulong, 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 类型。
- 从 char 类型到 ushort, int, uint, long, ulong, float, double,或 decimal 类型。
- 从 float 类型到 double 类型。
隐式数值转换实际上就是从低精度的数值类型到高精度数值类型的转换。
2、显示类型转换
①显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。
②强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型需要兼容。
强制类型转换的语法如下:
举例如下:
3、数据类型转换方法
①Parse方法
C# Parse方法用于将字符串类型换成任意基本类型,具体语法形式如下:
这里要求等号左、右两边的数据类型兼容。
举例如下:
②Convert方法
Convert方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成任意数据类型,前提是不要超出指定数据类型的范围。
具体的语法形式如下:
这里Convert.To后面的数据类型要与等号左边的数据类型相匹配。
Convert类常用的类型转换方法如下表所示:
方法 | 说明 |
Convert.ToInt16() | 转换为整数(short) |
Convert.ToInt32() | 转换为整数(int) |
Convert.ToInt64() | 转换为整数(long) |
Convert.ToChar() | 转换为字符型(char) |
Convert.ToString() | 转换为字符串型(string) |
Convert.ToDateTime() | 转换为日期型(datetime) |
Convert.ToDouble() | 转换为双精度浮点型(double) |
Convert.ToSingle() | 转换为单精度浮点型(float) |
举例如下:
4、拆箱和装箱
装箱:将值类型转换为引用类型的操作。
拆箱:相应地将引用类型转换为值类型。
利用装箱和拆箱功能,可通过允许值类型的任何值与 Object 类型的值相互转换,将值类型与引用类型链接起来。
举例如下:
举例如下: