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