本文整理汇总了C#中CSharpSyntaxNode.FirstAncestorOrSelf方法的典型用法代码示例。如果您正苦于以下问题:C# CSharpSyntaxNode.FirstAncestorOrSelf方法的具体用法?C# CSharpSyntaxNode.FirstAncestorOrSelf怎么用?C# CSharpSyntaxNode.FirstAncestorOrSelf使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSharpSyntaxNode
的用法示例。
在下文中一共展示了CSharpSyntaxNode.FirstAncestorOrSelf方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetParameterListNode
private static ArgumentListSyntax GetParameterListNode(CSharpSyntaxNode node)
{
InvocationExpressionSyntax invocationExpression = node.Parent as InvocationExpressionSyntax;
if (invocationExpression != null)
return invocationExpression.ArgumentList;
return node.FirstAncestorOrSelf<ArgumentListSyntax>(parent => true);
}
开发者ID:marketinvoice,项目名称:MarketInvoice.CodeAnalysis,代码行数:8,代码来源:BreakArgumentsApartRefactoringProvider.cs
示例2: GetParameterListNode
private static ParameterListSyntax GetParameterListNode(CSharpSyntaxNode node)
{
MethodDeclarationSyntax methodDeclaration = node.Parent as MethodDeclarationSyntax;
if (methodDeclaration != null)
return methodDeclaration.ParameterList;
ConstructorDeclarationSyntax ctorDeclaration = node.Parent as ConstructorDeclarationSyntax;
if (ctorDeclaration != null)
return ctorDeclaration.ParameterList;
return node.FirstAncestorOrSelf<ParameterListSyntax>(parent => true);
}
开发者ID:marketinvoice,项目名称:MarketInvoice.CodeAnalysis,代码行数:12,代码来源:BreakParametersApartRefactoringProvider.cs
示例3: FirstValidSymbolOccuranceOfVariable
public static ILocalSymbol FirstValidSymbolOccuranceOfVariable(SemanticModel model, CSharpSyntaxNode context, string identifier)
{
var outerForLoop = context.FirstAncestorOrSelf<ForStatementSyntax>();
var outerCatchClause = context.FirstAncestorOrSelf<CatchClauseSyntax>();
var foreachLoop = context.FirstAncestorOrSelf<ForEachStatementSyntax>();
var usings = context.FirstAncestorOrSelf<UsingStatementSyntax>();
if (outerForLoop != null && outerForLoop.Declaration.Variables.Any(x => x.Identifier.ToString() == identifier))
context = outerForLoop;
else if (outerCatchClause != null && outerCatchClause.Declaration.Identifier.ToString() == identifier)
context = outerCatchClause;
else if (foreachLoop != null && foreachLoop.Identifier.ToString() == identifier)
context = foreachLoop;
else if (usings.Declaration.Variables.Any(x => x.Identifier.ToString() == identifier))
context = usings;
else
context = context.FirstAncestorOrSelf<BlockSyntax>();
var walker = new VariableUsageFinder(model, context, identifier);
context.Accept(walker);
return (ILocalSymbol)walker.symbols.FirstOrDefault();
}
示例4: GetMemberDeclaration
private static CSharpSyntaxNode GetMemberDeclaration(CSharpSyntaxNode node)
{
return node.FirstAncestorOrSelf(s_isMemberDeclarationFunction);
}