Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public struct AbonentId : IFormattable, IComparable, IComparable<AbonentId>, IComparable<Guid>, IEquatable<AbonentId>, IEquatable<Guid>
- {
- // ReSharper disable once MemberCanBePrivate.Global
- //эта штука нужна чтобы работал сериализвтор
- public Guid Value { get; set; }
- #region Casts
- public static explicit operator Guid(AbonentId abonentId) => abonentId.Value;
- public static explicit operator AbonentId(Guid abonentId) => new AbonentId {Value = abonentId};
- #endregion
- #region Equatable
- public bool Equals(AbonentId other) => Value.Equals(other.Value);
- public bool Equals(Guid other) => Value.Equals(other);
- public override int GetHashCode() => Value.GetHashCode();
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj))
- {
- return false;
- }
- return obj is AbonentId && Equals((AbonentId)obj)
- || obj is Guid && Equals((Guid)obj);
- }
- public static bool operator ==(AbonentId left, AbonentId right) => left.Equals(right);
- public static bool operator !=(AbonentId left, AbonentId right) => !left.Equals(right);
- #endregion
- #region Formattable
- public string ToString(string format, IFormatProvider formatProvider) => Value.ToString(format, formatProvider);
- public override string ToString() => Value.ToString();
- #endregion
- #region Comparable
- public int CompareTo(AbonentId other) => Value.CompareTo(other.Value);
- public int CompareTo(Guid other) => Value.CompareTo(other);
- public int CompareTo(object obj)
- {
- var abonentId = obj as AbonentId?;
- return abonentId.HasValue
- ? Value.CompareTo(abonentId.Value.Value)
- : Value.CompareTo(obj);
- }
- #endregion
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement