Share via


SyntaxNode 類別

定義

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

public ref class SyntaxNode abstract
[System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")]
public abstract class SyntaxNode
[<System.Diagnostics.DebuggerDisplay("{GetDebuggerDisplay(), nq}")>]
type SyntaxNode = class
Public MustInherit Class SyntaxNode
繼承
SyntaxNode
衍生
屬性

屬性

ContainsAnnotations

判斷這個節點或任何子節點、權杖或 Trivia 是否有注釋。

ContainsDiagnostics

判斷這個節點或其任何子代節點、權杖或 Trivia 是否有任何診斷。

ContainsDirectives

判斷這個節點是否有任何子代預處理器指示詞。

ContainsSkippedText

判斷這個節點是否有任何子代略過的文字。

FullSpan

此節點的絕對範圍,以字元表示,包括其前置和尾端的 Trivia。

HasLeadingTrivia

判斷此節點是否具有任何前置的 Trivia。

HasStructuredTrivia

判斷這個節點的子系子系是否結構化。

HasTrailingTrivia

判斷這個節點是否有任何尾端的線索。

IsMissing

判斷節點是否代表實際從原始程式碼剖析的語言建構。 在錯誤案例中,剖析器會產生遺漏的節點,代表應該已存在於原始程式碼中的建構,以便成功編譯,但實際上遺失。

IsStructuredTrivia

判斷這個節點是否代表結構化的 Trivia。

KindText

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

Language

這個節點是語法的語言名稱。

Parent

在其集合中包含這個節點的 ChildNodes() 節點。

ParentTrivia

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

RawKind

整數,表示這個節點的語言特定類型。

Span

此節點的絕對範圍以字元表示,不包括其前置和尾端的三角。

SpanStart

與 在 上 Span 存取 Start 相同。

SyntaxTree

SyntaxTree傳回擁有節點的 。

SyntaxTreeCore

會傳回擁有節點的 SyntaxTree。 如果節點不屬於樹狀結構,則會產生一個。

方法

Ancestors(Boolean)

取得上階節點的清單

AncestorsAndSelf(Boolean)

取得上階節點的清單, (包括此節點)

ChildNodes()

取得前置詞檔順序的子節點清單。

ChildNodesAndTokens()

這個節點的子節點和標記清單,其中每個元素都是 SyntaxNodeOrToken 實例。

ChildThatContainsPosition(Int32)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

ChildTokens()

取得這個節點的直接子權杖清單。

Contains(SyntaxNode)

判斷指定的節點是否為此節點的子系。 傳回目前節點的 true。

ContainsDirective(Int32)

如果這個節點包含任何指示詞, (例如 #if#nullable 等) 內具有相符種類,則傳回 true。

CopyAnnotationsTo<T>(T)

從這個 SyntaxNode 實例複製所有 SyntaxAnnotations,並根據 將它們附加至新的實例 node

DescendantNodes(Func<SyntaxNode,Boolean>, Boolean)

取得前置檔順序的子代節點清單。

DescendantNodes(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得前置檔順序的子代節點清單。

DescendantNodesAndSelf(Func<SyntaxNode,Boolean>, Boolean)

取得子代節點的清單, (以前置檔順序包含此節點) 。

DescendantNodesAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得子代節點的清單, (以前置檔順序包含此節點) 。

DescendantNodesAndTokens(Func<SyntaxNode,Boolean>, Boolean)

取得前置檔順序的子系節點和標記清單。

DescendantNodesAndTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得前置檔順序的子代節點和標記清單。

DescendantNodesAndTokensAndSelf(Func<SyntaxNode,Boolean>, Boolean)

取得子系節點和標記的清單, (包含此節點) 前置詞檔順序。

DescendantNodesAndTokensAndSelf(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得子代節點和標記的清單, (以前置檔順序包含此節點) 。

DescendantTokens(Func<SyntaxNode,Boolean>, Boolean)

取得這個節點範圍中所有權杖的清單。

DescendantTokens(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得這個節點完整範圍中所有權杖的清單。

DescendantTrivia(Func<SyntaxNode,Boolean>, Boolean)

取得與子系節點和權杖相關聯的所有三維清單。

DescendantTrivia(TextSpan, Func<SyntaxNode,Boolean>, Boolean)

取得與子系節點和權杖相關聯的所有三維清單。

EquivalentToCore(SyntaxNode)

判斷這個節點在結構上是否相當於另一個節點。

FindNode(TextSpan, Boolean, Boolean)

尋找包含 span 的最小 FullSpan 節點。 getInnermostNodeForTie 是用來判斷系結 (的行為,也就是節點的跨越與其父系) 相同。 如果 getInnermostNodeForTie 為 true,則會傳回包含指定 span 之 的最低遞減節點。 否則,它會傳回包含指定 span 的最外層節點。

FindToken(Int32, Boolean)

尋找此節點的子代權杖,其範圍包含提供的位置。

FindTokenCore(Int32, Boolean)

尋找此節點的子代權杖,其範圍包含提供的位置。

FindTokenCore(Int32, Func<SyntaxTrivia,Boolean>)

尋找此節點的子代權杖,其範圍包含提供的位置。

FindTrivia(Int32, Boolean)

尋找此節點的子系子系,其範圍包含提供的位置。

FindTrivia(Int32, Func<SyntaxTrivia,Boolean>)

在指定的位置尋找這個節點的子系子系,其中位置在節點的範圍內。

FindTriviaCore(Int32, Boolean)

尋找此節點的子系子系,其範圍包含提供的位置。

FirstAncestorOrSelf<TNode,TArg>(Func<TNode,TArg,Boolean>, TArg, Boolean)

取得符合述詞之 TNode 類型的第一個節點。

FirstAncestorOrSelf<TNode>(Func<TNode,Boolean>, Boolean)

取得符合述詞之 TNode 類型的第一個節點。

GetAnnotatedNodes(String)

取得具有指定批註種類的所有節點。

GetAnnotatedNodes(SyntaxAnnotation)

取得具有指定批註的所有節點。

GetAnnotatedNodesAndTokens(String)

取得具有指定批註種類之注釋的所有節點和標記。

GetAnnotatedNodesAndTokens(String[])

取得具有指定批註種類之注釋的所有節點和標記。

GetAnnotatedNodesAndTokens(SyntaxAnnotation)

取得具有指定批註的所有節點和權杖。

GetAnnotatedTokens(String)

取得具有指定批註種類的所有標記。

GetAnnotatedTokens(SyntaxAnnotation)

取得具有指定批註的所有標記。

GetAnnotatedTrivia(String)

取得具有指定批註種類之注釋的所有 Trivia。

GetAnnotatedTrivia(String[])

取得具有指定批註種類之注釋的所有 Trivia。

GetAnnotatedTrivia(SyntaxAnnotation)

取得具有指定批註的所有 Trivia。

GetAnnotations(IEnumerable<String>)

取得具有指定批註種類的所有批註。

GetAnnotations(String)

取得具有指定批註種類的所有批註。

GetDiagnostics()

取得子樹狀結構中具有此節點為其根目錄的所有診斷清單。 此方法不會根據#pragmas和編譯器選項來篩選診斷,例如 nowarn、warnaserror 等。

GetFirstToken(Boolean, Boolean, Boolean, Boolean)

取得這個節點根目錄的第一個標記。 略過零寬度標記。

GetLastToken(Boolean, Boolean, Boolean, Boolean)

取得這個節點所根目錄樹狀結構的最後一個標記。 略過零寬度標記。

GetLeadingTrivia()

原始程式碼中這個節點之前出現的 Trivia 清單,並附加至此節點子系的權杖。

GetLocation()

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

GetRed<T>(T, Int32)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

GetRedAtZero<T>(T)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

GetReference()

SyntaxReference取得這個語法節點的 。 CommonSyntaxReferences 可用來重新取得語法節點的存取權,而不需要將整個樹狀結構和來源文字保留在記憶體中。

GetText(Encoding, SourceHashAlgorithm)

取得這個節點作為新 SourceText 實例的全文檢索。

GetTrailingTrivia()

原始程式碼中這個節點之後出現的 Trivia 清單,並附加至此節點子系的權杖。

HasAnnotation(SyntaxAnnotation)

判斷這個節點是否有特定的注釋。

HasAnnotations(IEnumerable<String>)

判斷這個節點是否有任何具有特定批註種類的任何注釋。

HasAnnotations(String)

判斷這個節點是否有具有特定批註種類的任何批註。

InsertNodesInListCore(SyntaxNode, IEnumerable<SyntaxNode>, Boolean)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

InsertTokensInListCore(SyntaxToken, IEnumerable<SyntaxToken>, Boolean)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

InsertTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>, Boolean)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

IsEquivalentTo(SyntaxNode)

判斷這個節點的結構是否相當於另一個節點。

IsEquivalentTo(SyntaxNode, Boolean)

判斷兩個節點是否相同,忽略小略差異。

IsEquivalentToCore(SyntaxNode, Boolean)

判斷兩個節點是否相同,忽略小略差異。

IsIncrementallyIdenticalTo(SyntaxNode)

如果這兩個節點視為「累加相同」,則會傳回 true。 當 使用 WithChangedText(SourceText) 以累加方式剖析 時 SyntaxTree ,就會發生累加相同的節點,而累加剖析器能夠從原始樹狀結構取得節點,並在新的樹狀結構中完整使用它。 在此情況下, ToFullString() 每個節點的 會是相同的,不過它們可能會有不同的父代,而且可能會發生在其各自樹狀結構中的不同位置。 如果兩個節點以累加方式相同,則每個節點的所有子系也會以累加方式相同。

IsPartOfStructuredTrivia()

判斷這個節點是否為結構化子系的子系。

NormalizeWhitespaceCore(String, String, Boolean)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

RemoveNodesCore(IEnumerable<SyntaxNode>, SyntaxRemoveOptions)

建立已移除指定節點的新節點樹狀結構。

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

使用指定的節點、權杖或 Trivia 取代,建立節點的新樹狀結構。

ReplaceNodeInListCore(SyntaxNode, IEnumerable<SyntaxNode>)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

ReplaceTokenInListCore(SyntaxToken, IEnumerable<SyntaxToken>)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

ReplaceTriviaInListCore(SyntaxTrivia, IEnumerable<SyntaxTrivia>)

表示語法樹狀結構中的非終端節點。 這是與 和 VisualBasicSyntaxNode 無關 CSharpSyntaxNode 的語言。

SerializeTo(Stream, CancellationToken)
已淘汰.
已淘汰.

將節點序列化為指定的 streamstream保留開啟以供進一步寫入。

ToFullString()

傳回此節點的完整字串標記法,包括其前置和尾端的 Trivia。

ToString()

傳回這個節點的字串標記法,不包括其前置和尾端的 Trivia。

WriteTo(TextWriter)

將這個節點的全文寫入指定的 TextWriter

擴充方法

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

取得這個節點根目錄的第一個指示詞。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

取得這個節點根目錄的最後一個指示詞。

Kind(SyntaxNode)

SyntaxKindSyntaxNodeRawKind 屬性傳回 。

TryGetInferredMemberName(SyntaxNode)

給定的初始化運算式運算式會推斷匿名屬性或 Tuple 專案的名稱。 如果失敗,則傳回 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)

給定的初始化運算式運算式會推斷匿名屬性或 Tuple 專案的名稱。 如果失敗,則傳回 Nothing

GetDirectives(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

取得具有選擇性篩選之指定 SyntaxNode 的 DirectiveTriviaSyntax 專案。

GetFirstDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

會取得指定之 SyntaxNode 的第一個 DirectiveTriviaSyntax 專案。

GetLastDirective(SyntaxNode, Func<DirectiveTriviaSyntax,Boolean>)

會取得指定之 SyntaxNode 的最後一個 DirectiveTriviaSyntax 專案。

Kind(SyntaxNode)

SyntaxKindSyntaxNodeRawKind 屬性傳回 。

ContainsDirective(SyntaxNode, SyntaxKind)

如果這個節點包含任何指示詞, (例如 #if#nullable 等) 內具有相符種類,則傳回 true。

IsKind(SyntaxNode, SyntaxKind)

判斷 是否 SyntaxNode 為指定的種類。

適用於