Demonstrate the use of a nested class to contain data : Class Definition : Class Interface C# Source Code


Custom Search

C# Source Code » Class Interface » Class Definition »

 

Demonstrate the use of a nested class to contain data









    

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

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

//
// Nested.cs -- demonstrate the use of a nested class to contain data
//
//              Compile this program with the following command line
//                  C:>csc Nested.cs
//
namespace nsReadOnly
{
    using System;
    
    public class Nested
    {
        static double DegreeFactor = 1;
        static double MilFactor = 0.05625;
        static double RadianFactor = 57.29578;
        static public void Main ()
        {
            double angle = 90;
            double radius = 50;
            
            // Declare an instance of the nested class
            clsArea.clsData data = new clsArea.clsData (angle, radius,
                                                        DegreeFactor);
            clsArea InDegrees = new clsArea (data);

            // Change the values to mils
            data.Factor = MilFactor;
            data.Angle = angle * 17.77778;
            clsArea InMils = new clsArea (data);

            // Change the values to radians
            data.Angle = angle / 57.29578;
            data.Factor = RadianFactor;
            clsArea InRadians = new clsArea (data);

            Console.WriteLine ("Area of pie of {0,0:F3} degrees is {1,0:F1}",
                               InDegrees.Data.Angle, InDegrees.Area);
            Console.WriteLine ("Area of pie of {0,0:F3} radians is {1,0:F1}",
                               InRadians.Data.Angle, InRadians.Area);
            Console.WriteLine ("Area of pie of {0,0:F3} mils is {1,0:F1}",
                               InMils.Data.Angle, InMils.Area);
        }
    }
    class clsArea
    {
        public class clsData : ICloneable
        {
            public clsData (double angle, double radius, double factor)
            {
                m_Angle = angle;
                m_Radius = radius;
                m_Factor = factor / 57.29578;
            }
            public double Angle
            {
                get {return(m_Angle);}
                set {m_Angle = value;}
            }

            public double Radius
            {
                get {return(m_Radius);}
                set {m_Radius = value;}
            }
            public double Factor
            {
                get {return(m_Factor);}
                set {m_Factor = value / 57.29578;}
            }
            private double m_Angle = 0;
            private double m_Radius = 0;
            private double m_Factor = 1;
            public object Clone ()
            {
                clsData clone = new clsData (m_Angle, m_Radius,
                                             m_Factor * 57.29578);
                return (clone);
            }
        }

        public clsArea (clsData data)
        {
            // Clone the data object to get a copy for ourselves
            m_Data = (clsData) data.Clone();
        }

        public clsData Data
        {
            get {return (m_Data);}
        }

        private clsData m_Data;
        private const double pi = 3.14159;
        private const double radian = 57.29578;

        public double Area
        {
            get
            {
               return (m_Data.Radius * m_Data.Radius * pi
                       * m_Data.Angle * m_Data.Factor /  (2 * pi));
            }
        }
    }
}


           
       
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo Class Interface
» Class Definition