本文整理汇总了C#中ExpressionSyntax.RemoveParentheses方法的典型用法代码示例。如果您正苦于以下问题:C# ExpressionSyntax.RemoveParentheses方法的具体用法?C# ExpressionSyntax.RemoveParentheses怎么用?C# ExpressionSyntax.RemoveParentheses使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ExpressionSyntax
的用法示例。
在下文中一共展示了ExpressionSyntax.RemoveParentheses方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ExpressionIsModulus
private static bool ExpressionIsModulus(ExpressionSyntax expression)
{
var binary = expression.RemoveParentheses() as BinaryExpressionSyntax;
return binary != null && binary.IsKind(SyntaxKind.ModuloExpression);
}
示例2: ReportIfExpressionsMatch
private static void ReportIfExpressionsMatch(SyntaxNodeAnalysisContext context, ExpressionSyntax left, ExpressionSyntax right,
SyntaxToken operatorToken)
{
if (EquivalenceChecker.AreEquivalent(left.RemoveParentheses(), right.RemoveParentheses()))
{
context.ReportDiagnostic(Diagnostic.Create(Rule, context.Node.GetLocation(), operatorToken));
}
}
示例3: ProcessExpressionOnField
private void ProcessExpressionOnField(ExpressionSyntax expression, IFieldSymbol fieldSymbol)
{
if (!IsFieldRelevant(fieldSymbol))
{
return;
}
if (!expression.RemoveParentheses().IsOnThis())
{
readonlyFieldCollector.excludedFields.Add(fieldSymbol);
return;
}
var constructorSymbol = partialTypeDeclaration.SemanticModel.GetEnclosingSymbol(expression.SpanStart) as IMethodSymbol;
if (constructorSymbol == null)
{
readonlyFieldCollector.excludedFields.Add(fieldSymbol);
return;
}
if (constructorSymbol.MethodKind == MethodKind.Constructor &&
constructorSymbol.ContainingType.Equals(fieldSymbol.ContainingType))
{
readonlyFieldCollector.assignedAsReadonly.Add(fieldSymbol);
}
else
{
readonlyFieldCollector.excludedFields.Add(fieldSymbol);
}
}
示例4: GetTopMemberAccessIfNested
private static ExpressionSyntax GetTopMemberAccessIfNested(ExpressionSyntax expression, bool isNestedMemberAccess = false)
{
// If expression is (this.a.b).c, we need to return this.a
var noParens = expression.RemoveParentheses();
if (noParens is NameSyntax)
{
return isNestedMemberAccess ? noParens : null;
}
var memberAccess = noParens as MemberAccessExpressionSyntax;
if (memberAccess == null)
{
return null;
}
if (memberAccess.Expression.RemoveParentheses().IsKind(SyntaxKind.ThisExpression))
{
return isNestedMemberAccess ? memberAccess : null;
}
return GetTopMemberAccessIfNested(memberAccess.Expression, true);
}
示例5: TryGetBinaryExpression
private static BinaryExpressionSyntax TryGetBinaryExpression(ExpressionSyntax expression)
{
return expression.RemoveParentheses() as BinaryExpressionSyntax;
}
示例6: CheckAsOperatorComparedToNull
private static void CheckAsOperatorComparedToNull(ExpressionSyntax sideA, ExpressionSyntax sideB, Location location,
SyntaxNodeAnalysisContext context)
{
if (!EquivalenceChecker.AreEquivalent(sideA.RemoveParentheses(), SyntaxHelper.NullLiteralExpression))
{
return;
}
if (!sideB.RemoveParentheses().IsKind(SyntaxKind.AsExpression))
{
return;
}
context.ReportDiagnostic(Diagnostic.Create(Rule, location, MessageIsOperator));
}
示例7: ExpressionIsSimple
private static bool ExpressionIsSimple(ExpressionSyntax expression)
{
var expressionWithoutparentheses = expression.RemoveParentheses();
return expressionWithoutparentheses is IdentifierNameSyntax ||
expressionWithoutparentheses is MemberAccessExpressionSyntax;
}