Написание класса 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)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д