第五天,学习第一个知识就是关于类型转换的。
类型转换,顾名思义是与类型密切相关的。为什么要进行类型转换呢?因为我们当前的类型不满足我们使用当前变量,所以要把当前变量转换成我们需要的类型。
例如我们之前做过的练习题中,我们要求用户从控制台输入一个数字,然后我们拿这个数字作一系列运算。但是我们知道,从控制台输入的只是一个字符串,但我们想要的是一个数字,很明显是不满足我们使用要求的,所以这个时候我们就要进行转换,将string类型的字符串转换成能够计算的数值类型。
说完了类型转换的原因,我们来说说类型转换的分类:隐式转换和显式转换。
隐式转换就是这种类型转换是编译器偷偷进行的,在别人不知道的时候就自动转换好了;一般来说,当小类型想大类型转换的时候就用隐式转换,就好比把一个小盒子放在一个大盒子里,很容易很简单,编译器自己就可以进行,不用别人来操心。
显式转换与隐式转换相反,它不是编译器可以自动能转换的,而是需要人为地用代码去控制转换的进行;一般来说,当大类型向小类型转换时用显式转换,就好比把一个大盒子放在一个小盒子里,大盒子太大,放不进去,编译器没有能力处理这件事了,于是报错,接着手动地把大盒子去掉,装到小盒子里。
比如:byte类型比int类型小,byte就可以转换成int类型,反之,int不能转化成byte类型:
当int向byte转换的时候,编译器报错了,因为隐式转换完成不了这项工作。
所以需要显式转换:
这样就可以了。在前面加上一个圆括号,里面写上目标类型。
当然,这只是显式转换的一种方法,我们在前面使用的Convert.ToInt32()方法也是显式转换的方法之一。
另外,当一个数值转换成字符串的时候,用到了Convert.ToString()方法,同时,转换成字符串还可以用后面加空字符串的方法:
string oneStr = oneByte + "";