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); } } }