私は最近、Google が完全に説明できなかった奇妙な動作に出くわしました。
using Microsoft.VisualStudio.TestTools.UnitTesting;
class TestClass
{
public override bool Equals(object obj)
{
return true;
}
}
[TestMethod]
public void TestMethod1()
{
TestClass t = new TestClass ();
Assert.AreEqual (t, null); // fails
Assert.IsTrue (t.Equals (null)); // passes
}
このテストは成功すると思います。ただし、Visual Studio 2008 / .NET 3.5 では失敗します。そのようにすることを意図したものですか、それともバグですか?