Написание класса Point в стили Generic - C#
Формулировка задачи:
Добрый день!
Помогите разобраться почему не работает метод Distance так как нужно!!!
Листинг программы
- using System;
- namespace Geometry
- {
- public abstract class Point<T> : IPoint<T>
- {
- public abstract T X { get; set; }
- public abstract T Y { get; set; }
- public T Z { get; set; }
- public abstract void Show();
- public abstract T GetDistance<T1>(two);
- }
- }
- namespace Geometry
- {
- interface IPoint<T>
- {
- T Z { get; set; }
- }
- }
- using System;
- namespace Geometry
- {
- class Point2D<T> : Point<T>
- {
- protected T x;
- protected T y;
- public override T X
- {
- get => x;
- set => x = value;
- }
- public override T Y
- {
- get => y;
- set => y = value;
- }
- public Point2D() { }
- public Point2D(T x, T y)
- {
- this.x = x;
- this.y = y;
- }
- public override void Show() => Console.WriteLine($"({x}, {y})");
- public T GetDistance<T1>(Point2D<T1> two)
- {
- return (T)(Object)Math.Sqrt(Math.Pow(this.X - two.X, 2) + Math.Pow(this.Y - two.Y, 2));
- }
- }
- }
- using System;
- namespace Geometry
- {
- class Point3D<T> : Point2D<T>, IPoint<T>
- {
- protected T z;
- public new T Z
- {
- get => z;
- set => z = value;
- }
- public Point3D() { }
- public Point3D(T x, T y) : base(x, y) { }
- public Point3D(T x, T y, T z) : base(x, y) => this.z = z;
- public override void Show() => Console.WriteLine($"({x}, {y}, {z})");
- public override T GetDistance(Point<T> two)
- {
- return Math.Sqrt(Math.Pow(X - two.x, 2) + Math.Pow(this.Y - two.Y, 2) + Math.Pow(this.Z - two.Z, 2));
- }
- }
- }
Решение задачи: «Написание класса Point в стили Generic»
textual
Листинг программы
- protected Func<T, T, T> add = FuncGenerator.CreateFuncFromExpression<T>(ExpressionType.Add); // c = a + b
- protected Func<T, T, T> sub = FuncGenerator.CreateFuncFromExpression<T>(ExpressionType.Subtract); // c = a - b
- protected Func<T, T, T> pow2 = FuncGenerator.CreateFuncFromExpression<T>(ExpressionType.Multiply); // c = a * b
- //protected Func<T, T, T> pow = FuncGenerator.CreateFuncFromExpression<T>(ExpressionType.Power); // c = Math.Pow(a, b)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д