/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
// Constrct.cs - Demonstrates the use of multiple constructors
// in a class definition.
//
// Compile this program with the following command line:
// C:>csc Constrct.cs
//
namespace nsConstructor
{
using System;
struct POINT
{
public POINT (int cx, int cy)
{
this.cx = cx;
this.cy = cy;
}
public int cx;
public int cy;
}
public class Constrct
{
static public void Main ()
{
clsRect rc1 = new clsRect();
clsRect rc2 = new clsRect (10, 12, 84, 96);
POINT pt1 = new POINT (10, 12);
POINT pt2 = new POINT (84, 96);
clsRect rc3 = new clsRect (pt1, pt2);
}
}
class clsRect
{
// The following constructor replaces the default constructor
public clsRect ()
{
Console.WriteLine ("Default constructor called");
m_Left = m_Top = m_Right = m_Bottom = 0;
}
public clsRect (int cx1, int cy1, int cx2, int cy2)
{
Console.WriteLine ("Constructor 1 called");
m_Left = cx1;
m_Top = cy1;
m_Right = cx2;
m_Bottom = cy2;
}
public clsRect (POINT pt1, POINT pt2)
{
Console.WriteLine ("Constructor 2 called");
m_Left = pt1.cx;
m_Top = pt1.cy;
m_Right = pt2.cx;
m_Bottom = pt2.cy;
}
public POINT UpperLeft
{
get {return(new POINT(m_Left, m_Top));}
set {m_Left = value.cx; m_Top = value.cy;}
}
public POINT LowerRight
{
get {return(new POINT(m_Right, m_Bottom));}
set {m_Right = value.cx; m_Bottom = value.cy;}
}
private int m_Left;
private int m_Top;
private int m_Right;
private int m_Bottom;
}
}