Demonstates assignment operator on structures and classes.

image_pdfimage_print

   

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

Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/

//
//  CmpStCls.cs -- Demonstates assignment operator on structures and classes.
//                 Compile this program with the following command line:
//                     C:>csc CmpStCls.cs
//
namespace nsCompare
{
    using System;
//
// Define a structure containing the x and y coordinates of a point
    struct stPoint
    {
        public int cx;
        public int cy;
    }
//
// Define a class containing the x and y coordinates of a point
    class clsPoint
    {
        public int cx;
        public int cy;
    }
    public class CmpStCls
    {
        static public void Main ()
        {
// Declare two structure variables
            stPoint spt1, spt2;
// Initialize the members of only one structure
            spt1.cx = 42;
            spt1.cy = 24;
// Assign the first structure to the first
            spt2 = spt1;
// Now modify the first structure
            spt1.cx = 12;
            spt1.cy = 18;
// Show the results
            Console.WriteLine ("For structures:");
            Console.WriteLine ("	The point for spt1 is ({0}, {1})", spt1.cx, spt1.cy);
            Console.WriteLine ("	The point for spt2 is ({0}, {1})", spt2.cx, spt2.cy);

// Now do the same thing with instances of the class
            clsPoint cpt1, cpt2;
            cpt1 = new clsPoint();
// Initialize the members of only one class instance
            cpt1.cx = 42;
            cpt1.cy = 24;
// Assign the first class instance to the second
            cpt2 = cpt1;
// Modify the first class
            cpt1.cx = 12;
            cpt2.cy = 18;
// Show the results
            Console.WriteLine ("
For structures:");
            Console.WriteLine ("	The point for cpt1 is ({0}, {1})", cpt1.cx, cpt1.cy);
            Console.WriteLine ("	The point for cpt2 is ({0}, {1})", cpt2.cx, cpt2.cy);
        }
    }
}