2 long b = a; //long 范围是 -9223372036854775808~9223372036854775807 表示的整数范围更大 并且这个范围包含200
3 //所以我们认为这两个数据类型转换是默认合法的也称隐式数据类型转换
4 Console.WriteLine("b = "+b.ToString());
2 int b = (int)a; //int 范围是 -2147483648~2147483647 -> 3333333333 超出了这个范围 所以导致数据类型溢出
3 Console.WriteLine("a =" + a.ToString());
4 Console.WriteLine("b ="+b.ToString());//类型溢出这里会输出一个非常大的负数
object obj = a; //将值类型转换引用类型,装箱操作
object obj = a; //将值类型转换引用类型 装箱
int b = (int)obj; //将引用类型转换为值类型 拆箱
{
//用来打印int类型的值
public static void ShowInt(int a)
{
Console.WriteLine(" a ="+a.ToString());
}
//用来打印float类型的值
public static void ShowFloat(float a)
{
Console.WriteLine(" a ="+a.ToString());
}
//用来打印double类型的值
public static void ShowDouble(double a)
{
Console.WriteLine(" a ="+a.ToString());
}
static void Main(string[] args)
{
int a = 10;
ShowInt(a);
float b = 2.2;
ShowFloat(b);
double c = 2.22;
ShowDouble(c);
}
}
{
//将参数类型改为object
public static void ShowObject(object obj)
{
Console.WriteLine("obj ="+obj.ToString());
}
static void Main(string[] args)
{
int a = 10;
ShowObject(a); //int a 被装箱
float b = 2.2;//float b 被装箱
ShowObject(b);
double c = 2.22;//double c 被装箱
ShowObject(c);
}
}