private MapParameters ( bool reduceByRef ) : void | ||
reduceByRef | bool | |
return | void |
internal MethodCandidate CreateByRefReducedCandidate() { if (!_hasByRef) { return(null); } var reducedMapping = new ParameterMapping(_resolver, _overload, _argNames); reducedMapping.MapParameters(true); return(reducedMapping.CreateCandidate()); }
private void AddBasicMethodTargets(MethodBase method) { Assert.NotNull(method); var mapping = new ParameterMapping(this, method, null, _argNames); mapping.MapParameters(false); foreach (var defaultCandidate in mapping.CreateDefaultCandidates()) { AddSimpleTarget(defaultCandidate); } var byRefReducedCandidate = mapping.CreateByRefReducedCandidate(); if (byRefReducedCandidate != null) { AddSimpleTarget(byRefReducedCandidate); } AddSimpleTarget(mapping.CreateCandidate()); }
internal MethodCandidate CreateByRefReducedCandidate() { if (!_hasByRefOrOut) { return null; } var reducedMapping = new ParameterMapping(_resolver, _method, _parameterInfos, _argNames); reducedMapping.MapParameters(true); return reducedMapping.CreateCandidate(); }
private void AddBasicMethodTargets(OverloadInfo method) { Assert.NotNull(method); var mapping = new ParameterMapping(this, method, _argNames); mapping.MapParameters(false); foreach (var defaultCandidate in mapping.CreateDefaultCandidates()) { AddSimpleTarget(defaultCandidate); } // TODO: We reduce out/ref parameters only for the main overload. // We should rather treat all out params as optional (either a StrongBox is provided or not). var byRefReducedCandidate = mapping.CreateByRefReducedCandidate(); if (byRefReducedCandidate != null) { AddSimpleTarget(byRefReducedCandidate); } AddSimpleTarget(mapping.CreateCandidate()); }