예제 #1
0
 private void PopulateParameters()
 {
     if (parameters == null)
     {
         MethodSignature methodSignature = this.MethodSignature;
         parameters = new ParameterInfo[methodSignature.GetParameterCount()];
         int parameter = module.MethodDef.records[index].ParamList - 1;
         int end       = module.MethodDef.records.Length > index + 1 ? module.MethodDef.records[index + 1].ParamList - 1 : module.Param.records.Length;
         for (; parameter < end; parameter++)
         {
             int seq = module.Param.records[parameter].Sequence - 1;
             if (seq == -1)
             {
                 returnParameter = new ParameterInfoImpl(this, seq, parameter);
             }
             else
             {
                 parameters[seq] = new ParameterInfoImpl(this, seq, parameter);
             }
         }
         for (int i = 0; i < parameters.Length; i++)
         {
             if (parameters[i] == null)
             {
                 parameters[i] = new ParameterInfoImpl(this, i, -1);
             }
         }
         if (returnParameter == null)
         {
             returnParameter = new ParameterInfoImpl(this, -1, -1);
         }
     }
 }