public CircularReferenceTwo HCircCopy(object obj, Dictionary<int, object> track) { object clone; if (track.TryGetValue(RuntimeHelpers.GetHashCode(obj), out clone)) { var c = clone as CircularReferenceTwo; if (null != c) return c; } var myClone = new CircularReferenceTwo(); track.Add(RuntimeHelpers.GetHashCode(obj), myClone); myClone.Identifier = this.Identifier; CircularReferenceOne cr = this.CR1; myClone.CR1 = null == cr ? null : cr.HCircCopy(cr, track); return myClone; }
public CircularReferenceOne HCircCopy(object obj, Dictionary <int, object> track) { object clone; if (track.TryGetValue(RuntimeHelpers.GetHashCode(obj), out clone)) { var c = clone as CircularReferenceOne; if (null != c) { return(c); } } var myClone = new CircularReferenceOne(); track.Add(RuntimeHelpers.GetHashCode(obj), myClone); myClone.Identifier = this.Identifier; CircularReferenceTwo cr = this.CR2; myClone.CR2 = null == cr ? null : cr.HCircCopy(cr, track); return(myClone); }