隐式转换 可以将子类赋值给基类
int a=5; //system.Int32
long b; //System.Int 64
// a=b; // 编译出错,缺少强制转换,因为b存储的最大值大于a
try
{
a=checked(int)b; //显示转换
}
catch
{
}
b=a; //隐式转换
Console.WriteLine(b);
Byte b=100;
b=(Byte)(b+100);
// b+=100 这里的b不需要显示转换
Console.WriteLine(b);
class Fruit
{
}
class Apple:Frutuit
{
pulic int i=1;
}
class Conversions
{
Fruit f=new Apple();
//Console.WriteLine(f.i); // 编译出错
//1
if(f is Apple)
{
Apple a=(Apple) f; //需要显示转换f
Console.WriteLine(a.i);
}
//2
Fruit f=new Apple();
Apple a=f as Apple;
if(a!=null)
{
Console.WriteLine(a.i);
}
}