CSharpSyntaxNode 类

定义

表示语法树中的非终端节点。

public ref class CSharpSyntaxNode abstract : Microsoft::CodeAnalysis::SyntaxNode, IFormattable
public abstract class CSharpSyntaxNode : Microsoft.CodeAnalysis.SyntaxNode, IFormattable
type CSharpSyntaxNode = class
    inherit SyntaxNode
    interface IFormattable
Public MustInherit Class CSharpSyntaxNode
Inherits SyntaxNode
Implements IFormattable
继承
CSharpSyntaxNode
派生
实现

属性

ContainsAnnotations

确定此节点或任何子节点、令牌或琐事是否具有批注。

(继承自 SyntaxNode)
ContainsDiagnostics

确定此节点或其任何后代节点、令牌或琐事是否具有任何诊断。

(继承自 SyntaxNode)
ContainsDirectives

确定此节点是否具有任何后代预处理器指令。

(继承自 SyntaxNode)
ContainsSkippedText

确定此节点是否有任何子代跳过的文本。

(继承自 SyntaxNode)
FullSpan

此节点的绝对跨度(以字符为单位),包括其前导和尾随琐事。

(继承自 SyntaxNode)
HasLeadingTrivia

确定此节点是否有任何前导琐事。

(继承自 SyntaxNode)
HasStructuredTrivia

确定是否构建此节点的后代琐事。

(继承自 SyntaxNode)
HasTrailingTrivia

确定此节点是否有任何尾随琐事。

(继承自 SyntaxNode)
IsMissing

确定节点是否表示实际从源代码分析的语言构造。 缺少的节点在错误情况下由分析程序生成,以表示源代码中本应存在以便成功编译但实际上缺失的构造。

(继承自 SyntaxNode)
IsStructuredTrivia

确定此节点是否表示结构化琐事。

(继承自 SyntaxNode)
KindText

表示语法树中的非终端节点。

(继承自 SyntaxNode)
Language

此节点的语法语言名称。

Parent

在其 ChildNodes() 集合中包含此节点的节点。

(继承自 SyntaxNode)
ParentTrivia

表示语法树中的非终端节点。

(继承自 SyntaxNode)
RawKind

一个整数,表示此节点的语言特定类型。

(继承自 SyntaxNode)
Span

此节点的绝对范围(以字符为单位),不包括其前导和尾随琐碎内容。

(继承自 SyntaxNode)
SpanStart

与在 上Span访问 Start 相同。

(继承自 SyntaxNode)
SyntaxTree

返回 SyntaxTree 拥有节点的 。

(继承自 SyntaxNode)
SyntaxTreeCore

表示语法树中的非终端节点。

方法

Accept(CSharpSyntaxVisitor)

表示语法树中的非终端节点。

Accept<TResult>(CSharpSyntaxVisitor<TResult>)

表示语法树中的非终端节点。

Ancestors(Boolean)

获取上级节点的列表

(继承自 SyntaxNode)
AncestorsAndSelf(Boolean)

获取包含此节点) (上级节点的列表

(继承自 SyntaxNode)
ChildNodes()

按前缀文档顺序获取子节点的列表。

(继承自 SyntaxNode)
ChildNodesAndTokens()

此节点的子节点和令牌列表,其中每个元素都是一个 SyntaxNodeOrToken 实例。

(继承自 SyntaxNode)
ChildThatContainsPosition(Int32)

表示语法树中的非终端节点。

(继承自 SyntaxNode)
ChildTokens()

获取此节点的直接子令牌的列表。

(继承自 SyntaxNode)
Contains(SyntaxNode)

确定指定的节点是否是此节点的后代。 对于当前节点,返回 true。

(继承自 SyntaxNode)
ContainsDirective(Int32)

如果此节点包含任何指令, (例如 #if#nullable等 ) ,则返回 true。

(继承自 SyntaxNode)
CopyAnnotationsTo<T>(T)

从此 SyntaxNode 实例复制所有 SyntaxAnnotation(如果有)并将它们附加到基于 node的新实例。

(继承自 SyntaxNode)
DescendantNodes(Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点的列表。

(继承自 SyntaxNode)
DescendantNodes(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点的列表。

(继承自 SyntaxNode)
DescendantNodesAndSelf(Func<SyntaxNode,Boolean>, Boolean)

获取子代节点的列表, (包括此节点) 前缀文档顺序。

(继承自 SyntaxNode)
DescendantNodesAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取子代节点的列表, (包括此节点) 前缀文档顺序。

(继承自 SyntaxNode)
DescendantNodesAndTokens(Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点和令牌的列表。

(继承自 SyntaxNode)
DescendantNodesAndTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

按前缀文档顺序获取子代节点和令牌的列表。

(继承自 SyntaxNode)
DescendantNodesAndTokensAndSelf(Func<SyntaxNode,Boolean>, Boolean)

获取子代节点和令牌的列表, (包括此节点) 前缀文档顺序。

(继承自 SyntaxNode)
DescendantNodesAndTokensAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取子代节点和令牌的列表, (包括此节点) 前缀文档顺序。

(继承自 SyntaxNode)
DescendantTokens(Func<SyntaxNode,Boolean>, Boolean)

获取此节点跨度内所有标记的列表。

(继承自 SyntaxNode)
DescendantTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取此节点整个范围中的所有令牌的列表。

(继承自 SyntaxNode)
DescendantTrivia(Func<SyntaxNode,Boolean>, Boolean)

获取与后代节点和令牌关联的所有琐事的列表。

(继承自 SyntaxNode)
DescendantTrivia(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

获取与后代节点和令牌关联的所有琐事的列表。

(继承自 SyntaxNode)
DeserializeFrom(Stream, CancellationToken)
已过时.
已过时.

从字节流反序列化语法节点。

EquivalentToCore(SyntaxNode)

确定此节点在结构上是否等效于另一个节点。

FindNode(TextSpan, Boolean, Boolean)

查找包含 span的最小FullSpan节点。 getInnermostNodeForTie 用于确定 (节点与其父) 具有相同跨度的节点时的行为。 如果 getInnermostNodeForTie 为 true,则返回包含给定 span的最低降序节点。 否则,它将返回包含给定 span的最外层节点。

(继承自 SyntaxNode)
FindToken(Int32, Boolean)

根据以下规则查找令牌:

  1. 如果 position 匹配节点/s 的 End of the End of the node/s FullSpan 且 node is CompilationUnit,则返回 EoF。

  2. 如果节点。FullSpan.Contains (位置) 然后返回包含给定位置的标记。

  3. 否则将引发 ArgumentOutOfRangeException

FindTokenCore(Int32, Boolean)

查找此节点的后代标记,其范围包括提供的位置。

(继承自 SyntaxNode)
FindTokenCore(Int32, Func<SyntaxTrivia,Boolean>)

查找此节点的后代标记,其范围包括提供的位置。

(继承自 SyntaxNode)
FindTrivia(Int32, Boolean)

查找此节点的子代琐事,其范围包括提供的位置。

FindTrivia(Int32, Func<SyntaxTrivia,Boolean>)

在指定位置查找此节点的子代琐事,其中位置在节点的跨度内。

FindTriviaCore(Int32, Boolean)

查找此节点的子代琐事,其范围包括提供的位置。

(继承自 SyntaxNode)
FirstAncestorOrSelf<TNode,TArg>(Func<TNode,TArg,Boolean>, TArg, Boolean)

获取与谓词匹配的 TNode 类型的第一个节点。

(继承自 SyntaxNode)
FirstAncestorOrSelf<TNode>(Func<TNode,Boolean>, Boolean)

获取与谓词匹配的 TNode 类型的第一个节点。

(继承自 SyntaxNode)
GetAnnotatedNodes(String)

获取具有指定批注类型的所有节点。

(继承自 SyntaxNode)
GetAnnotatedNodes(SyntaxAnnotation)

获取具有指定注释的所有节点。

(继承自 SyntaxNode)
GetAnnotatedNodesAndTokens(String)

获取具有指定批注类型注释的所有节点和标记。

(继承自 SyntaxNode)
GetAnnotatedNodesAndTokens(String[])

获取具有指定批注类型注释的所有节点和标记。

(继承自 SyntaxNode)
GetAnnotatedNodesAndTokens(SyntaxAnnotation)

获取具有指定注释的所有节点和标记。

(继承自 SyntaxNode)
GetAnnotatedTokens(String)

获取具有指定批注类型的所有标记。

(继承自 SyntaxNode)
GetAnnotatedTokens(SyntaxAnnotation)

获取具有指定注释的所有标记。

(继承自 SyntaxNode)
GetAnnotatedTrivia(String)

获取具有指定批注类型注释的所有琐事。

(继承自 SyntaxNode)
GetAnnotatedTrivia(String[])

获取具有指定批注类型注释的所有琐事。

(继承自 SyntaxNode)
GetAnnotatedTrivia(SyntaxAnnotation)

获取具有指定批注的所有琐事。

(继承自 SyntaxNode)
GetAnnotations(IEnumerable<String>)

获取具有指定批注类型的所有批注。

(继承自 SyntaxNode)
GetAnnotations(String)

获取具有指定批注类型的所有批注。

(继承自 SyntaxNode)
GetDiagnostics()

获取子树中将此节点作为其根的所有诊断的列表。 此方法不基于 #pragmas 和编译器选项(如 nowarn、warnaserror 等)筛选诊断。

GetFirstDirective(Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的第一个指令。

GetFirstToken(Boolean, Boolean, Boolean, Boolean)

获取此节点根目录树的第一个标记。

GetLastDirective(Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的最后一个指令。

GetLastToken(Boolean, Boolean, Boolean, Boolean)

获取此节点根目录树的最后一个非零宽度标记。

GetLeadingTrivia()

源代码中此节点之前显示的琐事列表。

GetLocation()

Location获取此节点的 。

GetRed<T>(T, Int32)

表示语法树中的非终端节点。

(继承自 SyntaxNode)
GetRedAtZero<T>(T)

表示语法树中的非终端节点。

(继承自 SyntaxNode)
GetReference()

SyntaxReference获取此语法节点的 。 CommonSyntaxReferences 可用于重新获得对语法节点的访问权限,而无需将整个树和源文本保留在内存中。

(继承自 SyntaxNode)
GetText(Encoding, SourceHashAlgorithm)

获取此节点作为新 SourceText 实例的全文。

(继承自 SyntaxNode)
GetTrailingTrivia()

源代码中此节点之后出现的琐事列表。

HasAnnotation(SyntaxAnnotation)

确定此节点是否具有特定批注。

(继承自 SyntaxNode)
HasAnnotations(IEnumerable<String>)

确定此节点是否具有具有任何特定批注类型的任何注释。

(继承自 SyntaxNode)
HasAnnotations(String)

确定此节点是否具有具有特定批注类型的任何批注。

(继承自 SyntaxNode)
InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean)

表示语法树中的非终端节点。

InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean)

表示语法树中的非终端节点。

InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean)

表示语法树中的非终端节点。

IsEquivalentTo(SyntaxNode)

确定此节点在结构上是否等效于另一个节点。

(继承自 SyntaxNode)
IsEquivalentTo(SyntaxNode, Boolean)

确定两个节点是否相同,忽略琐碎的差异。

(继承自 SyntaxNode)
IsEquivalentToCore(SyntaxNode, Boolean)

表示语法树中的非终端节点。

IsIncrementallyIdenticalTo(SyntaxNode)

如果这两个节点被视为“增量相同”,则返回 true。 当 使用 WithChangedText(SourceText) 进行增量分析,并且增量分析程序能够从原始树中获取节点并在新树中完全使用它时SyntaxTree,将发生增量相同的节点。 在这种情况下, ToFullString() 每个节点的 将是相同的,尽管它们可能具有不同的父级,并且可能发生在其各自树中的不同位置。 如果两个节点增量相同,则每个节点的所有子级也将增量相同。

(继承自 SyntaxNode)
IsPartOfStructuredTrivia()

确定此节点是否是结构化琐事的后代。

(继承自 SyntaxNode)
Kind()

返回 SyntaxKind 节点的 。

NormalizeWhitespaceCore(String, String, Boolean)

表示语法树中的非终端节点。

RemoveNodesCore(IEnumerable<SyntaxNode>, SyntaxRemoveOptions)

表示语法树中的非终端节点。

ReplaceCore<TNode>(IEnumerable<TNode>, Func<TNode,TNode,SyntaxNode>, IEnumerable<SyntaxToken>, Func<SyntaxToken,SyntaxToken,SyntaxToken>, IEnumerable<SyntaxTrivia>, Func<SyntaxTrivia,SyntaxTrivia,SyntaxTrivia>)

表示语法树中的非终端节点。

ReplaceNodeInListCore(SyntaxNode, IEnumerable<SyntaxNode>)

表示语法树中的非终端节点。

ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>)

表示语法树中的非终端节点。

ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>)

表示语法树中的非终端节点。

SerializeTo(Stream, CancellationToken)
已过时.
已过时.

将节点序列化为给定 stream的 。 stream使 保持打开状态,以便进一步写入。

(继承自 SyntaxNode)
ToFullString()

返回此节点的完整字符串表示形式,包括其前导和尾随琐事。

(继承自 SyntaxNode)
ToString()

返回此节点的字符串表示形式,不包括其前导和尾随琐碎内容。

(继承自 SyntaxNode)
WriteTo(TextWriter)

将此节点的全文写入指定的 TextWriter

(继承自 SyntaxNode)

显式接口实现

IFormattable.ToString(String, IFormatProvider)

表示语法树中的非终端节点。

扩展方法

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的第一个指令。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取此节点根目录树的最后一个指令。

Kind(SyntaxNode)

SyntaxKindRawKind 属性返回 。SyntaxNode

TryGetInferredMemberName(SyntaxNode)

给定初始值设定项表达式推断匿名属性或元组元素的名称。 如果失败,则返回 null

ContainsDirective(SyntaxNode, SyntaxKind)

如果此节点包含任何指令, (例如 #if#nullable等 ) ,则返回 true。

IsKind(SyntaxNode, SyntaxKind)

确定 是否 SyntaxNode 为指定类型。

GetCurrentNode<TNode>(SyntaxNode, TNode)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

GetCurrentNodes<TNode>(SyntaxNode, TNode)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

GetCurrentNodes<TNode>(SyntaxNode, IEnumerable<TNode>)

获取子树中对应于原始跟踪节点的节点。 使用 TrackNodes 开始跟踪节点。

TryGetInferredMemberName(SyntaxNode)

给定初始值设定项表达式,推断匿名属性或元组元素的名称。 如果不成功,则返回 Nothing

GetDirectives(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取具有可选筛选的指定 SyntaxNode 的 DirectiveTriviaSyntax 项。

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取指定 SyntaxNode 的第一个 DirectiveTriviaSyntax 项。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

获取指定 SyntaxNode 的最后一个 DirectiveTriviaSyntax 项。

Kind(SyntaxNode)

SyntaxKindRawKind 属性返回 。SyntaxNode

ContainsDirective(SyntaxNode, SyntaxKind)

如果此节点包含任何指令, (如 #if#nullable等 ) 匹配类型,则返回 true。

IsKind(SyntaxNode, SyntaxKind)

确定 是否 SyntaxNode 为指定类型。

适用于