using System; using System.Collections.Generic; namespace WindStressPRM { /// <summary> /// Coordinate pair /// пара координат, может быть рамерности: м, км, градус, однако для всех экземпляров должна быть одной и той же. /// </summary> public class Coordinate { /// <summary> /// easting coordinate /// Координата по долготе/ X, (м, км, градус) /// </summary> public double X { get; private set; } /// <summary> /// northing coordinate /// Координата по широте/Y, (м, км, градус) /// </summary> public double Y { get; private set; } /// <summary> /// designated constructor /// Основной конструктор /// </summary> /// <param name="X"></param> /// <param name="Y"></param> public Coordinate(double X, double Y) { this.X = X; this.Y = Y; this.CheckValue(); } /// <summary> /// Проверка на валидность значений /// </summary> /// <returns></returns> private void CheckValue() { if (Double.IsNaN(X) || Double.IsInfinity(X)) { throw new System.ArgumentOutOfRangeException("Coordinate.X is incorrect", X, "Expected X!=Nan, X!=INF"); } if (Double.IsNaN(Y) || Double.IsInfinity(Y)) { throw new System.ArgumentOutOfRangeException("Coordinate.Y is incorrect", Y, "Expected Y!=Nan, Y!=INF"); } } } }