一:隐式转换(bool 和string 类型没有隐式转换)
理解:不需要编写代码来实现转换的转换:如 int i=100; long j=i;
数值类型的隐式转换条件:任何类型A,只要其取值范围完全包含在类型B的取值范围内,就可以隐式转换为类型B。
二:显示转换
1,数值类型的显示转换:long i=100;int j=(int )i; 但要注意如果i的值超出int的取值范围就会得到一个与预想不同的值;
2,数值类型与字符串类型,数值类型与字符类型,字符串与字符数组,字符串与字节数组的转换靠调用方法(如 int i=123;string str=i.tostring());
三:类与类之间的转换之重载转换运算符(C#入门经典284页);
四:用抽象类来调用其派生类的方法时,必须进行类型转换
如:
public abstract class Animal { public void Feed() { console.writeline("feed"); } } public class Chicken : Animal { public void LayEgg() { } } Animal an=new Chicken(); an.Feed();//这是对的; an.LayEgg()//这是错的; ((Chicken)an).LayEgg();//这是对的