/// <summary> /// Returns a hash code for this instance. /// </summary> /// <returns> /// A hash code for this instance, suitable for use in hashing algorithms and data structures /// like a hash table. /// </returns> public override int GetHashCode() { unchecked { var hashCode = (_techniqueBinding != null ? _techniqueBinding.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (_technique != null ? _technique.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (_context != null ? _context.GetHashCode() : 0); return(hashCode); } }