using System; namespace Windows { public class WindowHash : IEquatable { #region Public Enums, Properties and Fields public string Title { get; } public string Class { get; } #endregion #region Constructors, Destructors and Finalizers public WindowHash(string title, string @class) { Title = title; Class = @class; } #endregion #region Interface public bool Equals(WindowHash other) { if (ReferenceEquals(null, other)) { return false; } if (ReferenceEquals(this, other)) { return true; } return string.Equals(Title, other.Title) && string.Equals(Class, other.Class); } #endregion #region Public Overrides public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) { return false; } if (ReferenceEquals(this, obj)) { return true; } if (obj.GetType() != GetType()) { return false; } return Equals((WindowHash) obj); } public override int GetHashCode() { unchecked { return (Title != null ? Title.GetHashCode() : 0) * 397 ^ (Class != null ? Class.GetHashCode() : 0); } } #endregion } }