Skip to content

Instantly share code, notes, and snippets.

@Burtsev-Alexey
Created April 23, 2014 18:31
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save Burtsev-Alexey/11227277 to your computer and use it in GitHub Desktop.
Save Burtsev-Alexey/11227277 to your computer and use it in GitHub Desktop.
[TestMethod]
public void TestSelfRecursion()
{
var original = new Recursive();
original.Recursion = original;
var clone = original.Copy();
Assert.IsFalse(ReferenceEquals(original, clone));
Assert.IsFalse(ReferenceEquals(original.Recursion, clone.Recursion));
Assert.IsTrue(ReferenceEquals(original, original.Recursion));
Assert.IsTrue(ReferenceEquals(clone, clone.Recursion));
}
[TestMethod]
public void TestSelfRecursionOverrideHash()
{
var original = new RecursiveOverrideHash();
original.Recursion = original;
var clone = original.Copy();
Assert.IsFalse(ReferenceEquals(original, clone));
Assert.IsFalse(ReferenceEquals(original.Recursion, clone.Recursion));
Assert.IsTrue(ReferenceEquals(original, original.Recursion));
Assert.IsTrue(ReferenceEquals(clone, clone.Recursion));
}
public class Recursive
{
public Recursive Recursion;
}
public class RecursiveOverrideHash
{
private static Int32 counter=1;
public RecursiveOverrideHash Recursion;
public override int GetHashCode()
{
return ++counter;
}
}
@Burtsev-Alexey
Copy link
Author

StackOverflow exception when GetHashCode overridden

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment