Illustrates boxing and unboxing


   
 
/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy

Publisher: Sybex;
ISBN: 0782129110
*/

/*
  Example7_8.cs illustrates boxing and unboxing
*/

using System;

public class Example7_8
{

  public static void Main()
  {

    // implicit boxing of an int
    int myInt1 = 10;
    Console.WriteLine("myInt1.ToString() = " + myInt1.ToString());
    Console.WriteLine("myInt1.GetType() = " + myInt1.GetType());

    // explicit boxing of an int to an object
    int myInt2 = 10;
    object myObject = myInt2;  // myInt2 is boxed
    Console.WriteLine("myInt2 = " + myInt2);
    Console.WriteLine("myObject = " + myObject);

    // explicit unboxing of an object to an int
    int myInt3 = (int) myObject;  // myObject is unboxed
    Console.WriteLine("myInt3 = " + myInt3);

  }

}

           
         
     


Boxing also occurs when passing values


   
 
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// Boxing also occurs when passing values. 
using System; 
 
public class BoxingDemo11 { 
  public static void Main() { 
    int x; 
    
    x = 10; 
    Console.WriteLine("Here is x: " + x); 
 
    // x is automatically boxed when passed to sqr() 
    x = BoxingDemo11.sqr(x); 
    Console.WriteLine("Here is x squared: " + x); 
  } 
 
  static int sqr(object o) { 
    return (int)o * (int)o; 
  } 
}


           
         
     


A simple boxing/unboxing example


   
 
/*
C#: The Complete Reference 
by Herbert Schildt 

Publisher: Osborne/McGraw-Hill (March 8, 2002)
ISBN: 0072134852
*/


// A simple boxing/unboxing example. 
using System; 
 
public class BoxingDemo { 
  public static void Main() { 
    int x; 
    object obj; 
 
    x = 10; 
    obj = x; // box x into an object 
 
    int y = (int)obj; // unbox obj into an int 
    Console.WriteLine(y); 
  } 
}