/*
C# Programming Tips & Techniques
by Charles Wright, Kris Jamsa
Publisher: Osborne/McGraw-Hill (December 28, 2001)
ISBN: 0072193794
*/
//
// ReadOnly.cs -- demonstrate the use of readonly variables
//
// Compile this program with the following command line
// C:>csc ReadOnly.cs
//
namespace nsReadOnly
{
using System;
public class ReadOnly
{
static double DegreeFactor = 1;
static double MilFactor = 0.05625;
static public void Main ()
{
double degrees = 42;
// 1 degree = 17.77778 mils
double mils = degrees * 17.77778;
// 1 degree = 0.017453 radians
double radians = degrees * 0.017453;
clsArea InDegrees = new clsArea (DegreeFactor);
InDegrees.Angle = degrees;
InDegrees.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InDegrees.Area);
// Radians are the default, so you can use the parameterless
// constructor
clsArea InRadians = new clsArea ();
InRadians.Angle = radians;
InRadians.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InRadians.Area);
clsArea InMils = new clsArea (MilFactor);
InMils.Angle = mils;
InMils.Radius = 50;
Console.WriteLine ("Area of circle is {0,0:F1}", InMils.Area);
}
}
class clsArea
{
public clsArea ()
{
}
public clsArea (double factor)
{
m_Factor = factor / 57.29578;
}
private const double pi = 3.14159;
private const double radian = 57.29578;
private readonly double m_Factor = 1;
public double Angle
{
get {return (m_Angle);}
set {m_Angle = value;}
}
public double Radius
{
get {return (m_Radius);}
set {m_Radius = value;}
}
private double m_Angle;
private double m_Radius;
public double Area
{
get
{
return (m_Radius * m_Radius * pi * m_Angle * m_Factor / (2 * pi));
}
}
}
}
|