int a = 1;
object obj = new object();
obj = a;

解决方案 »

  1.   

    seems-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/netstart/html/cpglob.htm
      

  2.   

    sorry
    see
    ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.2052/csref/html/vclrfBoxingConversionPG.htm
      

  3.   

    brightheroes(闭关(正在修练基本功)) 麻烦你把上面的东西copy下来好吗?我在外地,手头没有电脑.
      

  4.   

    C# 程序员参考   装箱转换请参见
    装箱和取消装箱 | 取消装箱转换
    装箱是值类型到 object 类型或到该值类型所实现的任何接口类型的隐式转换。将一个值的值装箱会分配一个对象实例并将该值复制到新的对象中。请看以下值类型变量的声明:int i = 123;
    以下语句对变量 i 隐式应用装箱操作:object o = i;
    此语句的结果是在堆栈上创建对象 o,而该对象在堆上引用 int 类型的值。该值是赋给变量 i 的值类型值的一个副本。下图说明了两个变量 i 和 o 之间的差异。装箱转换也可以(但绝不必要)如下例所示显式执行装箱:int i = 123;
    object o = (object) i;
    示例
    此例将整数变量 i 通过装箱转换为对象 o。这样,存储在变量 i 中的值就从 123 更改为 456。此例显示对象保留了内容的原始副本,即 123。// boxing.cs
    // Boxing an integer variable
    using System;
    class TestBoxing  
    {
       public static void Main() 
       {
          int i = 123;
          object o = i;  // Implicit boxing
          i = 456;       // Change the contents of i
          Console.WriteLine("The value-type value = {0}", i);
          Console.WriteLine("The object-type value = {0}", o);
       }
    }
    输出
    The value-type value = 456
    The object-type value = 123
    请参见
    装箱和取消装箱 | 取消装箱转换--------------------------------------------------------------------------------向 Microsoft 发送有关此主题的反馈© Microsoft Corporation。保留所有权利。
      

  5.   

    C# 程序员参考   取消装箱转换请参见
    装箱和取消装箱 | 装箱转换
    取消装箱是从 object 类型到值类型或从接口类型到实现该接口的值类型的显式转换。取消装箱操作包括: 检查对象实例,确保它是给定值类型的一个装箱值。 
    将该值从实例复制到值类型变量中。 
    以下语句同时说明了装箱和取消装箱操作:int i = 123;          // A value type
    object box = i;       // Boxing
    int j = (int)box;     // Unboxing
    下图显示了以上语句的结果。取消装箱转换为使到给定值类型的取消装箱转换在运行时取得成功,源参数的值必须是对某个对象的引用,而该对象先前是通过将该值类型的值装箱创建的。如果源参数为 null 或是对一个不兼容对象的引用,则会引发 InvalidCastException。示例
    下面的示例阐释无效取消装箱的情况,即错误的取消装箱如何导致 InvalidCastException。通过使用 try 和 catch,发生错误时会显示错误信息。using System;
    public class UnboxingTest 
    {
       public static void Main() 
       {
          int intI = 123;      // Boxing
          object o = intI;      // Reference to incompatible object produces InvalidCastException
          try 
          {
             int intJ = (short) o;
             Console.WriteLine("Unboxing OK.");
          }      catch (InvalidCastException e) 
          {
             Console.WriteLine("{0} Error: Incorrect unboxing.",e);
          }
       }
    }
    输出
    System.InvalidCastException
       at UnboxingTest.Main() Error: Incorrect unboxing.
    如果将下列语句:int intJ = (short) o;
    更改为:int intJ = (int) o;
    转换将执行,而您将得到输出“Unboxing OK”。请参见
    装箱和取消装箱 | 装箱转换--------------------------------------------------------------------------------向 Microsoft 发送有关此主题的反馈© Microsoft Corporation。保留所有权利。
      

  6.   

    先谢谢上面的我都明白.能不能举个 使用装箱操作后算法比较perfect  的例子?
      

  7.   

    装箱是一个类型转换的过程,当你为了程序的需要,一个变量可以是多种类型的时候,你需要声明object类型变量,而你在用的时候,根据每个类的不同,可以进行拆箱操作。
      

  8.   

    其实你完全没有必要理会什么装箱,拆箱,不过是一个晦涩的术语而已箱子就是一个箱子(一个object的变量),你知道里面的内容是什么(有可能是任意类型),这个箱子的好处就是无论什么类型,都可以装进去,然后用的时候,就取出来,转换为原来的类型(这就是拆箱)