Mega Code Archive

 
Categories / C# / Class Interface
 

Demonstates assignment operator on structures and classes

/* 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 ("\tThe point for spt1 is ({0}, {1})", spt1.cx, spt1.cy);             Console.WriteLine ("\tThe 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 ("\r\nFor structures:");             Console.WriteLine ("\tThe point for cpt1 is ({0}, {1})", cpt1.cx, cpt1.cy);             Console.WriteLine ("\tThe point for cpt2 is ({0}, {1})", cpt2.cx, cpt2.cy);         }     } }