using class fields from other classes

后端 未结 4 1908
野性不改
野性不改 2021-01-19 04:23

I\'m quite new to C# and OOP so please bear with me.

I have two classes with different namespaces:

namespace Class1

public class class1
{
 public do         


        
4条回答
  •  庸人自扰
    2021-01-19 04:55

    Everybody here gave you the right answer for accessing the fields, but in the case of area and volume you are approaching the problem in a procedural, not OO way. This is an example showing you how to access the internal fields, and an OO way to approach this kind of problems:

    public abstract class Shape
    {
        public abstract double Area();
        public abstract double Perimeter();
    }
    
    public class Circle : Shape
    {
        public double Radius;
    
        public override double Perimeter()
        {
            return 2 * Radius * Math.PI;
        }
    
        public override double Area()
        {
            return Radius * Radius * Math.PI;
        }
    }
    
    public class Square : Shape
    {
        public double Side;
    
        public override double Perimeter()
        {
            return Side * 4;
        }
    
        public override double Area()
        {
            return Side * Side;
        }
    }
    
    public abstract class Solid
    {
        public abstract double Volume();
    }
    
    public abstract class CircleBaseSolid : Solid
    {
        protected Circle Base = new Circle();
    
        public double Radius
        {
            get { return Base.Radius; }
            set { Base.Radius = value; }
        }
    
        public double Height;
    }
    
    public class Cylinder : CircleBaseSolid
    {
        public override double Volume()
        {
            return Base.Area() * Height;
        }
    }
    
    public class Cone : CircleBaseSolid
    {
        public override double Volume()
        {
            return Base.Area() * Height / 3;
        }
    }
    
    public abstract class SquareBaseSolid : Solid
    {
        protected Square Base = new Square();
    
        public double Side
        {
            get { return Base.Side; }
            set { Base.Side = value; }
        }
    
        public double Height;
    }
    
    public class SquareParallelepiped : SquareBaseSolid
    {
        public override double Volume()
        {
            return Base.Area() * Height;
        }
    }
    
    public class SquarePyramid : SquareBaseSolid
    {
        public override double Volume()
        {
            return Base.Area() * Height / 3;
        }
    }
    

提交回复
热议问题