public ParameterGen <T> BeginParameter(Type type, string name)
{
ParameterAttributes attrs = 0;
bool va = false;
switch (_paramMod)
{
case ParamModifier.Out:
attrs |= ParameterAttributes.Out;
goto case ParamModifier.Ref;
case ParamModifier.Ref:
if (!type.IsByRef)
{
type = type.MakeByRefType();
}
break;
case ParamModifier.Params:
if (!type.IsArray)
{
throw new InvalidOperationException(Messages.ErrParamArrayNotArray);
}
va = true;
break;
}
ParameterGen <T> pgen = new ParameterGen <T>(TypedThis, _parameters, _parameters.Count + 1, type, attrs, name, va);
_parameters.Add(pgen);
_paramMod = ParamModifier.None;
return(pgen);
}