/// <summary> /// Return the HashCode of this object. /// </summary> /// <returns>The HashCode of this object.</returns> public override Int32 GetHashCode() { unchecked { return(Value.GetHashCode() * 23 ^ (Context.HasValue ? Context.GetHashCode() * 19 : 0) ^ (Format.HasValue ? Format.GetHashCode() * 17 : 0) ^ (Measurand.HasValue ? Measurand.GetHashCode() * 13 : 0) ^ (Phase.HasValue ? Phase.GetHashCode() * 11 : 0) ^ (Location.HasValue ? Location.GetHashCode() * 7 : 0) ^ (Unit.HasValue ? Unit.GetHashCode() * 5 : 0)); } }
/// <summary> /// Преобразует строку с размерностью в размерность определенного типа /// </summary> /// <param name="src">Строка, которую необходимо преобразовать</param> /// <param name="measurand">Измеряемая величина, которая измеряется в единицах, представленных в src</param> /// <returns></returns> public static Dimension Convert(string src, Measurand measurand) { foreach (Dimension dm in AllDimensions[measurand].Values) { if (src == dm.Text) { return(dm); } } throw new ArgumentException("Невозможно строку \"" + src + "\" преобразовать в размерность"); }
/// <summary> /// Представляет размерность /// </summary> /// <param name="measurand">Измеряемая величина</param> /// <param name="id">Уникальный идентификатор</param> /// <param name="value">Строковое представление</param> public Dimension(Measurand measurand, int id, string value) { this.measurand = measurand; this.Id = id; this.Text = value; }
public MeterValueValue() { this.contextField = ReadingContext.SamplePeriodic; this.formatField = ValueFormat.Raw; this.measurandField = Measurand.EnergyActiveImportRegister; this.locationField = Location.Outlet; this.unitField = UnitOfMeasure.Wh; }