コード例 #1
0
ファイル: Program.cs プロジェクト: MenasheZagri/CSharp
        static void PrintShapeArea(IAreaCalculator ac)
        {
            Console.WriteLine(ac.GetArea());
            Console.WriteLine(ac.GetType());

            if (ac is BigCircle)
            {
                BigCircle c = ac as BigCircle;
                Console.WriteLine(c.Radius);
            }
        }
コード例 #2
0
        public Kernel()
        {
            //Instantiate Interface objects
            _areaCalculator     = new AreaCalculator();
            _volumeCalculator   = new VolumeCalculator();
            _decimalParse       = new ParseFromInput();
            _wallAreaCalculator = new WallAreaCalculator();
            _paintCalculator    = new PaintCoverageCalculator();

            run      = true;
            getInput = true;
        }
コード例 #3
0
        internal static void AddFigureProcessors <TDescription>(
            AbstractValidator <TDescription> validator,
            IAreaCalculator <TDescription> calculator,
            string code)

            where TDescription : IFigureDescription
        {
            var processors = new ProxyFigureProcessors();

            processors.Init(validator, calculator);

            var type = typeof(TDescription);

            _typeMap.AddOrUpdate(type, processors, (key, old) => processors);
            _codeMap.AddOrUpdate(code, type, (key, old) => type);
        }
コード例 #4
0
        public void Init <TDescription>(AbstractValidator <TDescription> validator,
                                        IAreaCalculator <TDescription> calculator)
            where TDescription : IFigureDescription
        {
            if (validator == null)
            {
                throw new ArgumentNullException(nameof(validator));
            }

            if (calculator == null)
            {
                throw new ArgumentNullException(nameof(calculator));
            }

            Calculate = (IFigureDescription desc) => calculator.Calculate((TDescription)desc);
            Validate  = (IFigureDescription desc) => validator.Validate((TDescription)desc);
        }
コード例 #5
0
        static void Main(string[] args)
        {
            var calcs = new IAreaCalculator[]
            {
                new TriangleAreaCalculator(3, 4, 5),
                new CircleAreaCalculator(1),
                new TriangleAreaCalculator(5, 5, 5),
                new CircleAreaCalculator(3.8),
                new TriangleAreaCalculator(7, 3, 5)
            };

            foreach (var calc in calcs)
            {
                Console.WriteLine(calc.CalcArea());
            }

            Console.ReadKey();
        }
コード例 #6
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ShapeBase{T}" /> class.
 /// </summary>
 /// <param name="areaCalculator">The area calculator.</param>
 /// <param name="name">The name.</param>
 /// <exception cref="System.ArgumentNullException">areaCalculator</exception>
 protected ShapeBase(IAreaCalculator <T> areaCalculator, string name)
 {
     Calculator = areaCalculator ?? throw new ArgumentNullException(nameof(areaCalculator));
     Name       = name;
 }
コード例 #7
0
 public AreaClient(IAreaCalculator calculator)
 {
     _calculator = calculator;
 }
コード例 #8
0
 public ConvexHullSpritePreviewEditorWindow()
 {
     _convexHullBuilder     = new SpriteConvexHullBuilder();
     _convexHullAreaAdapter = new ConvexHullAreaAdapter(new ConvexHullAreaCalculator());
     _areaCalculator        = new MinAreaCalculator();
 }
コード例 #9
0
 public AreaCalculatorUI()
 {
     AreaCalculator = AppContainer.Resolve <IAreaCalculator>();
 }
コード例 #10
0
 public Square(IAreaCalculator calArea)
 {
     this.calculateArea = calArea;
 }
コード例 #11
0
 public Rectangle(IAreaCalculator calArea)
 {
     this.calculateRArea = calArea;
 }
コード例 #12
0
 // Start is called before the first frame update
 void Start()
 {
     areaCalculator = areaCalculatorGO.GetComponent <IAreaCalculator>();
 }
コード例 #13
0
 public CompositeAreaCalculator(IAreaCalculator areaCalculator)
 {
     _areaCalculator = areaCalculator ??
                       throw new ArgumentNullException(nameof(areaCalculator));
 }
コード例 #14
0
 public PeakAreaCalculator(IAreaCalculator calculator, IBounder bounder)
 {
     this.calculator = calculator;
     this.bounder    = bounder;
 }