/* 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); } } }