У меня есть код, как это:Почему полиморфизм дерева выражений Linq корректно работает?
if(expression.GetType() == typeof(BinaryExpression))
{
//DO something
}
выражение является MethodBinaryExpression (делает Console.WriteLines(expression.GetType().ToString()
так говорит). Однако код никогда не попадает в if-блок. MethodBinaryExpression
- это дочерний класс SimpleBinaryExpression
, который является дочерним классом BinaryExpression
. Что дает?
Спасибо - я не знаю, почему я продолжаю думать, что C# == будет пересекать все дерево наследования. Это сработало отлично. – TheNerd