using System;
namespace testBoxingApp
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
short i = 1;
object ObjectOne = i; //装箱,隐式类型转换
Console.WriteLine ("{0} Boxing to object:{1}",ObjectOne.GetType(),ObjectOne);
short j;
j = (short)ObjectOne; //拆箱,显示类型转换
Console.WriteLine ("object Unboxing to short :{0}",j);
try //错误的拆箱
{
int k;
k = (int)ObjectOne;
Console.WriteLine ("object Unboxing to int: {0}",k);
}
catch(InvalidCastException ex){
Console.WriteLine ( ex.Message );
}
object ObjectTwo = new Class2 ();
try //错误的拆箱
{
short m;
m = (short)ObjectTwo;
Console.WriteLine ("object Unboxing to short :{0}",m);
}
catch(InvalidCastException ex)
{
Console.WriteLine ( ex.Message );
}
Class2 aRef; //Class2的一个引用变量
aRef = (Class2) ObjectTwo;
Console.WriteLine (aRef.s );
}
}
class Class2
{
public short s;
public Class2()
{
Console.WriteLine ("A Class2 Object!");
s = 10;
}
}
}