本文整理汇总了C#中Candidate.ScoreVarArgs方法的典型用法代码示例。如果您正苦于以下问题:C# Candidate.ScoreVarArgs方法的具体用法?C# Candidate.ScoreVarArgs怎么用?C# Candidate.ScoreVarArgs使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Candidate
的用法示例。
在下文中一共展示了Candidate.ScoreVarArgs方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ApplicableCandidate
private bool ApplicableCandidate(Candidate candidate)
{
// Figure out whether method should be varargs-expanded
bool expand =
candidate.Method.AcceptVarArgs &&
(_arguments.Count == 0 || (_arguments.Count > 0 &&
!AstUtil.IsExplodeExpression(_arguments[-1])));
// Determine number of fixed (non-varargs) parameters
int fixedParams =
(expand ? candidate.Parameters.Length - 1 : candidate.Parameters.Length);
// Validate number of parameters against number of arguments
if (_arguments.Count < fixedParams) return false;
if (_arguments.Count > fixedParams && !expand) return false;
// Score each argument against a fixed parameter
for (int i = 0; i < fixedParams; i++)
{
if (candidate.Score(i) < 0)
{
return false;
}
}
// If method should be expanded, match remaining arguments against
// last parameter
if (expand)
{
candidate.Expanded = true;
for (int i = fixedParams; i < _arguments.Count; i++)
{
if (candidate.ScoreVarArgs(i) < 0)
{
return false;
}
}
}
return true;
}