AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="0.9.7" />

 Frequency

Represents a time value.
using AngleSharp.Extensions; using System; namespace AngleSharp.Css.Values { public struct Frequency : IEquatable<Frequency>, IComparable<Frequency>, IFormattable { public enum Unit { None, Hz, Khz } private readonly float _value; private readonly Unit _unit; public float Value => _value; public Unit Type => _unit; public string UnitString { get { switch (_unit) { case Unit.Khz: return UnitNames.Khz; case Unit.Hz: return UnitNames.Hz; default: return string.Empty; } } } public Frequency(float value, Unit unit) { _value = value; _unit = unit; } public static bool operator >=(Frequency a, Frequency b) { int num = a.CompareTo(b); if (num != 0) return num == 1; return true; } public static bool operator >(Frequency a, Frequency b) { return a.CompareTo(b) == 1; } public static bool operator <=(Frequency a, Frequency b) { int num = a.CompareTo(b); if (num != 0) return num == -1; return true; } public static bool operator <(Frequency a, Frequency b) { return a.CompareTo(b) == -1; } public int CompareTo(Frequency other) { return ToHertz().CompareTo(other.ToHertz()); } public static bool TryParse(string s, out Frequency result) { float result2 = 0; Unit unit = GetUnit(s.CssUnit(out result2)); if (unit != 0) { result = new Frequency(result2, unit); return true; } result = default(Frequency); return false; } public static Unit GetUnit(string s) { if (s == "hz") return Unit.Hz; if (s == "khz") return Unit.Khz; return Unit.None; } public float ToHertz() { if (_unit != Unit.Khz) return _value; return _value * 1000; } public bool Equals(Frequency other) { if (_value == other._value) return _unit == other._unit; return false; } public static bool operator ==(Frequency a, Frequency b) { return a.Equals(b); } public static bool operator !=(Frequency a, Frequency b) { return !a.Equals(b); } public override bool Equals(object obj) { Frequency? nullable = obj as Frequency?; if (nullable.HasValue) return Equals(nullable.Value); return false; } public override int GetHashCode() { return _value.GetHashCode(); } public override string ToString() { return _value.ToString() + UnitString; } public string ToString(string format, IFormatProvider formatProvider) { return _value.ToString(format, formatProvider) + UnitString; } } }