0
使用DynamicObject
可以創建自定義類並定義其實例與其他類型進行比較時的行爲。這是通過覆蓋TryBinaryOperation
完成的。將自定義動態對象與參考類型進行比較
但是,當我嘗試將其與null
或任何參考值進行比較時,重寫的方法從不會被調用。
public class Foo : DynamicObject
{
public override bool TryBinaryOperation(BinaryOperationBinder binder, object arg, out object result)
{
if (binder.Operation == ExpressionType.Equal)
{
result = true;
return true;
}
return base.TryBinaryOperation(binder, arg, out result);
}
}
static void Main(string[] args)
{
dynamic foo = new Foo();
Console.WriteLine(foo == 1); // True
Console.WriteLine(foo == new object()); // False
Console.WriteLine(foo == null); // False
}
有沒有辦法攔截這個調用?我會假設DynamicObject
不是這個的正確抽象。