类型转换概念
C# 是一门强类型语言,对类型要求比较严格,但是在一定的条件下也是可以相互 转换的,如将 int 型数据转换成 double 型数据。
c#允许使用两种转换方式:隐式类型转换和显式类型转换
隐式类型转换
隐式类型转换是 C# 默认的以安全方式进行的转换,不会导致数据丢失。例如,从 小的整数类型转换为大的整数类型,从派生类转换为基类。
隐式转换主要是在整型、浮点型之间的转换,将存储范围小的数据类型直接转换成 存储范围大的数据类型。
例:int a = 100;
double d = a;
float f = 3.14f;
d = f;
隐式数值转换:
到 | |
sbyte | short,int,long,float,double或 decimal 类型 |
byte | 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 类型 |
隐式数值转换实际上就是从低精度的数值类型到高精度的数值类型的转换
显式类型转换
显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会 造成数据丢失
强制类型转换主要用于将存储范围大的数据类型转换成存储范围小的,但数据类型 需要兼容
强制类型转换的语法如下
数据类型变量名 = (数据类型) 变量名或值;
数据类型转换方法
Parse 方法 用于将字符串类型转换成任意基本类型
Convert方法
Convert方法是数据类型转换中最灵活的方法,它能够将任意数据类型的值转换成 任意数据类型,前提是不要超出指定数据类型的范围
Convert 类常用的类型转换方法
方法 | 说明 |
Convert.ToInt16() | 转换为整型(short) |
Convert.ToInt32() | 转换为整型(int) |
Convert.ToInt64() | 转换为整型(long) |
Convert.ToChar() | 转换为字符型(char) |
Convert.ToString() | 转换为字符串型(string) |
Convert.ToDateTime() | 转换为日期型(datetime) |
Convert.ToDouble() | 转换为双精度浮点型(double) |
Conert.ToSingle() | 转换为单精度浮点型(float) |
拆箱和装箱
装箱:将值类型转换为引用类型的操作
拆箱:相应地将引用类型转换成值类型
利用装箱和拆箱功能,可通过允许值类型的任何值与 Object 类型的值相互转换, 将值类型与引用类型链接起来