Automatic boxing and unboxing to pass an undetermined data type to a function

image_pdfimage_print

   
 
/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//  Obj.cs - Demonstrates automatic boxing and unboxing to pass an
//           undetermined data type to a function.
//           Compile this program with the following command line:
//               C:>csc Obj.cs
//
namespace nsObject
{
    using System;
    public class Obj
    {
        static public void Main ()
        {
            double d = 3.14159;
//  Pass a double to Square ()
            object o = Square (d);
            ShowSquare (o);
//  Pass an int to Square ()
            o = Square (42);
            ShowSquare (o);
//  Pass a float to Square ()
            o = Square (2.71828F);
            ShowSquare (o);
        }
//  Square () returns the boxed square of a value if the data type is
//  int or double. Otherwise, Square() returns a null reference
        static object Square (object o)
        {
            if (o is double)
                return ((double) o * (double) o);
            if (o is int)
                return ((int) o * (int) o);
            return (null);
        }
        static public void ShowSquare (object o)
        {
            if (Object.Equals (o, null))
                Console.WriteLine ("The object is null");
            else
                Console.WriteLine ("The square is " + o);
        }
    }
}


           
         
     


This entry was posted in Data Types. Bookmark the permalink.