-
- return Parameters.ArrayParameter;
- }
-
- public Type ParameterType (int pos)
- {
- if (has_varargs && pos >= count)
- return TypeManager.runtime_argument_handle_type;
-
- if (param_types == null)
- return null;
-
- return GetParameter (pos).ExternalType ();
- }
-
- public GenericConstraints GenericConstraints (int pos)
- {
- if (TypeParameters == null)
- return null;
-
- return TypeParameters [pos].Constraints;
- }
-
- public string ParameterName (int pos)
- {
- if (has_varargs && pos >= count)
- return "__arglist";
-
- return GetParameter (pos).Name;
- }
-
- public string ParameterDesc (int pos)
- {
- if (has_varargs && pos >= count)
- return "__arglist";
-
- string tmp = String.Empty;
- Parameter p = GetParameter (pos);
-
- //
- // We need to and for REF/OUT, because if either is set the
- // extra flag ISBYREF will be set as well
- //
- if ((p.ModFlags & Parameter.Modifier.REF) != 0)
- tmp = "ref ";
- else if ((p.ModFlags & Parameter.Modifier.OUT) != 0)
- tmp = "out ";
- else if (p.ModFlags == Parameter.Modifier.PARAMS)
- tmp = "params ";
-
- Type t = ParameterType (pos);
-
- return tmp + TypeManager.CSharpName (t);
- }
-
- public Parameter.Modifier ParameterModifier (int pos)
- {
- if (has_varargs && pos >= count)
- return Parameter.Modifier.ARGLIST;
-
- Parameter.Modifier mod = GetParameter (pos).ModFlags;
-
- if ((mod & (Parameter.Modifier.REF | Parameter.Modifier.OUT)) != 0)
- mod |= Parameter.Modifier.ISBYREF;
-
- return mod;
- }
-