public override Expression GetArgument(int index) { switch (index) { case 0: return ReturnObject<Expression>(_arg0); case 1: return _arg1; case 2: return _arg2; case 3: return _arg3; default: throw new ArgumentOutOfRangeException(nameof(index)); } }