/// <summary>Serves as the default hash function. </summary> /// <returns>A hash code for the current object.</returns> public override int GetHashCode() { unchecked { var hashCode = (Observation != null ? Observation.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Reward.GetHashCode(); hashCode = (hashCode * 397) ^ Done.GetHashCode(); hashCode = (hashCode * 397) ^ (Information != null ? Information.GetHashCode() : 0); return(hashCode); } }