本文整理汇总了C#中InvocationExpressionSyntax.HasExactlyNArguments方法的典型用法代码示例。如果您正苦于以下问题:C# InvocationExpressionSyntax.HasExactlyNArguments方法的具体用法?C# InvocationExpressionSyntax.HasExactlyNArguments怎么用?C# InvocationExpressionSyntax.HasExactlyNArguments使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InvocationExpressionSyntax
的用法示例。
在下文中一共展示了InvocationExpressionSyntax.HasExactlyNArguments方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CheckIsInstanceOfTypeCallWithTypeArgument
private static void CheckIsInstanceOfTypeCallWithTypeArgument(InvocationExpressionSyntax invocation, IMethodSymbol methodSymbol,
SyntaxNodeAnalysisContext context)
{
if (methodSymbol.Name != "IsInstanceOfType" ||
!methodSymbol.ContainingType.Is(KnownType.System_Type) ||
!invocation.HasExactlyNArguments(1))
{
return;
}
var argument = invocation.ArgumentList.Arguments.First().Expression;
var typeInfo = context.SemanticModel.GetTypeInfo(argument).Type;
if (!typeInfo.Is(KnownType.System_Type))
{
return;
}
var invocationInArgument = argument as InvocationExpressionSyntax;
var message = IsGetTypeCall(invocationInArgument, context.SemanticModel)
? MessageIsInstanceOfTypeWithGetType
: MessageIsInstanceOfType;
context.ReportDiagnostic(Diagnostic.Create(Rule, argument.GetLocation(), message));
}
示例2: IsEqualsCallInGuardCondition
internal static bool IsEqualsCallInGuardCondition(InvocationExpressionSyntax invocation, IMethodSymbol invokedMethod)
{
if (invokedMethod.Name != EqualsName)
{
return false;
}
var ifStatement = invocation.Parent as IfStatementSyntax;
if (ifStatement == null ||
ifStatement.Condition != invocation ||
!invocation.HasExactlyNArguments(1))
{
return false;
}
return IfStatementWithSingleReturnTrue(ifStatement);
}