I have following method:
internal virtual Expression VisitMethodCall(MethodCallExpression m)
{
var obj = Visit(m.Object);
IEnumerable<Expression> args = VisitExpressionList(m.Arguments);
if (obj != m.Object
|| args != m.Arguments)
{
return Expression.Call(obj, m.Method, args);
}
return m;
}
The question is: in which cases args != m.Arguments will return true? Does it compare references or every object condition as well?