隐式转换不需要做任何工作,也不需要另外编写代码。考虑下面的代码:
varl = var2;
如果var2的类型可以隐式地转换为varl的类型,这条赋值语句就涉及隐式转换。这两个变量的类型也可 能相同,此时就不需要隐式转换。例如,ushort和char的值是可以互换的,因为它们都可以存储0和65 535 之间的数字,在这两种类型之间可以进行隐式转换,如下面的代码所示:
ushort destinationVar; char sourceVar =;
destinationVar = sourceVar;
WriteLine($HsourceVar val: (sourceVar)M);
WriteLine($"destinationVar val: (destinationVar)M);
这里存储在sourceVar中的值放在destinationVar中。在用两个WriteLineO命令输出变量时,得到如下结果:
sourceVar val: a destinationVar val: 97
即使两个变量存储的信息相同,使用不同的类型解释它们时,方式也是不同的。
简单类型有许多隐式转换,bool和string没有隐式转换,但数值类型有一些隐式转换。下表列出了编译 器可以隐式执行的数值转换(记住,char存储的是数值,所以char被当作数值类型)。
类 型 | 可以安全地转换为 |
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 |
已有 22658 名学员学习以下课程通过考试
最需教育客户端 软件问题一手掌握
去 App Store 免费下载 iOS 客户端
点击加载更多评论>>