public abstract class DataClass
{
public static bool operator ==(DataClass left, DataClass right)
{
return left.Equals(right);
}
}
,這是什麼情況
object left = new DataClass();
object right = new DataClass();
bool expected = true;
bool actual;
actual = ((DataClass)left) == ((DataClass)right);
Assert.AreEqual(expected, actual); // passes
actual = left == right;
Assert.AreEqual(expected, actual); // fails
如何使它調用正確實施,沒有明確地鑄造了嗎?
如果類是可變的和/或不'sealed',然後重寫'==操作符'首先最有可能是錯誤的。你應該總是使用'Equals'而不是'=='*,除非你知道這個特定的類在平等*中起作用。由於'物體'遠離這個理想,所以不要這樣做。 – Jon 2012-01-18 18:21:11