隱式轉換 可以將子類賦值給基類
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);
}
}