Jad*_*ias 1 .net c# inheritance overriding operator-keyword
我有
public abstract class DataClass
{
public static bool operator ==(DataClass left, DataClass right)
{
return left.Equals(right);
}
}
Run Code Online (Sandbox Code Playgroud)
这就是发生的事情
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
Run Code Online (Sandbox Code Playgroud)
如何让它调用正确的实现,而不是显式地强制它?