internal override Expression GetExpression(int index)
        {
            switch (index)
            {
            case 0: return(ExpressionEx.ReturnObject <Expression>(_body));

            default: throw new InvalidOperationException();
            }
        }
        internal override Expression GetExpression(int index)
        {
            switch (index)
            {
            case 0: return(ExpressionEx.ReturnObject <Expression>(_arg0));

            case 1: return(_arg1);

            case 2: return(_arg2);

            case 3: return(_arg3);

            default: throw new InvalidOperationException();
            }
        }
 internal Scope1(IList <ParameterExpression> variables, Expression body)
     : base(variables, ExpressionEx.ReturnObject <Expression>(body).Type)
 {
     _body = body;
 }