SemanticModel 類別

定義

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

public ref class SemanticModel abstract
public abstract class SemanticModel
type SemanticModel = class
Public MustInherit Class SemanticModel
繼承
SemanticModel

備註

SemanticModel 的實例會快取本機符號和語意資訊。 因此,在詢問語法樹狀結構的多個問題時,使用 SemanticModel 的單一實例會更有效率,因為第一個問題中的資訊可能會重複使用。 這也表示長時間保留 SemanticModel 的實例可能會讓大量的記憶體無法被垃圾收集。

當答案是可透過從符號表的根目錄周遊來連線的具名符號時, (亦即,從編譯) 的 AssemblySymbol 傳回該符號,也就是傳 (回的值會參考等於從符號表根目錄) 的一個可連線的值。 代表沒有名稱的實體的符號 (例如 int 陣列) 可能會或可能不會顯示參考相等。 不過,某些具名符號 (例如本機變數) 無法從根目錄連線。 這些符號會顯示為語意問題的解答。 使用相同的 SemanticModel 物件時,答案會顯示參考相等。

建構函式

SemanticModel()

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

屬性

Compilation

此模型是從中取得的編譯。

CompilationCore

此模型是從中取得的編譯。

IgnoresAccessibility

如果這是在回答語意問題時忽略輔助功能規則的 SemanticModel,則會傳回 true。

IsSpeculativeSemanticModel

如果這是使用任何 TryGetSpeculativeSemanticModel 方法所建立的假設式語意模型,則傳回 true。

Language

取得來源語言 (“C#” 或 “Visual Basic”) 。

OriginalPositionForSpeculation

如果這是推測語意模型,則傳回建立推測模型的原始位置。 否則,會傳回 0。

ParentModel

如果這是推測語意模型,則傳回其父語意模型。 否則,會傳回 null。

ParentModelCore

如果這是推測性語意模型,則會傳回其父語意模型。 否則,會傳回 null。

RootCore

此語意模型的根目錄

SyntaxTree

從中取得此模型的語法樹狀結構。

SyntaxTreeCore

從中取得此模型的語法樹狀結構。

方法

AnalyzeControlFlowCore(SyntaxNode)

分析方法主體一部分內的控制流程。

AnalyzeControlFlowCore(SyntaxNode, SyntaxNode)

分析方法主體一部分內的控制流程。

AnalyzeDataFlowCore(SyntaxNode)

分析方法主體一部分內的數據流。

AnalyzeDataFlowCore(SyntaxNode, SyntaxNode)

分析方法主體一部分內的數據流。

GetAliasInfoCore(SyntaxNode, CancellationToken)

如果 「nameSyntax」 解析為別名名稱,則傳回對應至 A 的 IAliasSymbol。否則傳回 null。

GetConstantValue(SyntaxNode, CancellationToken)

如果提供的節點具有常數值,則會傳回選擇性值,並將 HasValue 設定為 true,並將 Value 設定為常數。 如果節點沒有常數值,則會以 HasValue 設定為 false 傳回 Optional。

GetConstantValueCore(SyntaxNode, CancellationToken)

如果提供的節點具有常數值,則會傳回選擇性值,並將 HasValue 設定為 true,並將 Value 設定為常數。 如果節點沒有常數值,則會以 HasValue 設定為 false 傳回 Optional。

GetDeclarationDiagnostics(Nullable<TextSpan>, CancellationToken)

取得與這個對象相關聯之語法樹狀結構中的所有宣告錯誤。 不會收到涉及不正確語法、編譯方法主體或初始化表達式的錯誤。

GetDeclaredSymbolCore(SyntaxNode, CancellationToken)

取得與宣告語法節點相關聯的符號。

GetDeclaredSymbolsCore(SyntaxNode, CancellationToken)

取得與宣告語法節點相關聯的符號。 不同於 Microsoft.CodeAnalysis.SemanticModel.GetDeclaredSymbolForNode(Microsoft.CodeAnalysis.SyntaxNode,System.Threading.CancellationToken),這個方法會傳回指定宣告語法節點所宣告的所有符號。 具體而言:

GetDiagnostics(Nullable<TextSpan>, CancellationToken)

取得與此對象相關聯之語法樹狀結構中的所有錯誤。 除了 GetDeclarationDiagnostics 所傳回的錯誤之外,還包含涉及編譯方法主體或初始化表達式的錯誤。

GetEnclosingSymbol(Int32, CancellationToken)

指定這個 SemanticModel 的 SyntaxTree 中的位置會傳回最內層的符號,該位置會視為在 內。

GetEnclosingSymbolCore(Int32, CancellationToken)

指定這個 SemanticModel 的 SyntaxTree 中的位置會傳回最內層的符號,該位置會視為在 內。

GetImportScopes(Int32, CancellationToken)

指定這個 SemanticModel 的 SyntaxTree 中的位置會傳 IImportScope回該點的 。 範圍是從最接近傳入 position 至最遠的範圍排序。 如需每個範圍可用資訊的更深入描述,請參閱 IImportScope

GetMemberGroupCore(SyntaxNode, CancellationToken)

取得解析為方法群組或屬性群組之符號的資訊時,接著會從中選取方法;選擇的方法或屬性會出現在 Symbol 中;所參考群組中的所有方法都會放在這個屬性中。

GetMethodBodyDiagnostics(Nullable<TextSpan>, CancellationToken)

取得與這個對象相關聯之語法樹狀結構內的所有方法主體和初始化表達式錯誤。 不會收到涉及不正確語法或宣告的錯誤。

GetNullableContext(Int32)

NullableContext取得位於檔案中位置的 。

GetOperation(SyntaxNode, CancellationToken)

取得對應至表達式或語句語法節點的作業。

GetOperationCore(SyntaxNode, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetPreprocessingSymbolInfo(SyntaxNode)

如果 nameSyntax 是識別碼名稱語法節點,則傳 PreprocessingSymbolInfo 回與其對應的 。

GetPreprocessingSymbolInfoCore(SyntaxNode)

如果 nameSyntax 是識別碼名稱語法節點,則傳 PreprocessingSymbolInfo 回與其對應的 。

GetSpeculativeAliasInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的名稱,並查看它是否解析為別名名稱。 如果這樣做,請傳回對應至它的 AliasSymbol。 否則,傳回 null。

GetSpeculativeSymbolInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的節點,並取得語意資訊,例如類型、符號和診斷。 這個方法可用來取得未實際出現在原始程式碼中的表達式語意資訊。

GetSpeculativeTypeInfoCore(Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的節點,並取得語意資訊,例如類型、符號和診斷。 這個方法可用來取得未實際出現在原始程式碼中的表達式語意資訊。

GetSymbolInfoCore(SyntaxNode, CancellationToken)

取得語法節點的符號資訊。

GetSyntaxDiagnostics(Nullable<TextSpan>, CancellationToken)

取得與此對象相關聯之語法樹狀結構中的所有語法錯誤。 不會收到涉及宣告或編譯方法主體或初始化表達式的錯誤。

GetTopmostNodeForDiagnosticAnalysis(ISymbol, SyntaxNode)

接受其中一個宣告語法參考的符號和語法,並傳回語法分析器要使用的最上層語法節點。

GetTypeInfoCore(SyntaxNode, CancellationToken)

取得語法節點的類型資訊。

IsAccessible(Int32, ISymbol)

判斷符號是否可從指定的位置存取。

IsAccessibleCore(Int32, ISymbol)

判斷符號是否可從指定的位置存取。

IsEventUsableAsField(Int32, IEventSymbol)

類似欄位的事件可以做為類型中的欄位,這些欄位可以存取事件宣告類型的私用成員。

IsEventUsableAsFieldCore(Int32, IEventSymbol)

類似欄位的事件可以做為類型中的欄位,這些欄位可以存取事件宣告類型的私用成員。

LookupBaseMembers(Int32, String)

取得指定位置內容中的可用基底類型成員。 類似於 LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean) 將容器設定為發生所在 position 型別的立即基底型別。 不過,輔助功能規則不同:基底類型的受保護成員將可見。

請思考一下下列範例:

public class Base { protected void M () { } }

public 類別衍生:Base { void Test (Base b) { b.M () ; - Error - 無法存取受保護的成員。 基地。M () ;} }

只有當實例已知為 「this」 實例時,才能存取另一種型別的受保護成員, (,如 “base” 關鍵詞所指出) 。

LookupBaseMembersCore(Int32, String)

的備份實作 LookupBaseMembers(Int32, String)

LookupLabels(Int32, String)

取得指定位置和選擇性容器內容中可用的具名標籤號。 只會傳回可從指定位置存取且可見的成員。

LookupLabelsCore(Int32, String)

的備份實作 LookupLabels(Int32, String)

LookupNamespacesAndTypes(Int32, INamespaceOrTypeSymbol, String)

取得指定位置和選擇性容器內容中可用的具名命名空間和型別符號。 只會傳回可從指定位置存取且可見的成員。

LookupNamespacesAndTypesCore(Int32, INamespaceOrTypeSymbol, String)

的備份實作 LookupNamespacesAndTypes(Int32, INamespaceOrTypeSymbol, String)

LookupStaticMembers(Int32, INamespaceOrTypeSymbol, String)

取得指定位置和選擇性容器內容中可用的具名靜態成員符號。 只會傳回可從指定位置存取且可見的成員。

系統會考慮非縮減的擴充方法,因為它們是靜態方法。

LookupStaticMembersCore(Int32, INamespaceOrTypeSymbol, String)

的備份實作 LookupStaticMembers(Int32, INamespaceOrTypeSymbol, String)

LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean)

取得指定位置和選擇性容器內容中可用的具名符號。 只會傳回可從指定位置存取且可見的符號。

LookupSymbolsCore(Int32, INamespaceOrTypeSymbol, String, Boolean)

的備份實作 LookupSymbols(Int32, INamespaceOrTypeSymbol, String, Boolean)

擴充方法

AnalyzeControlFlow(SemanticModel, StatementSyntax)

分析方法主體一部分內的控制流程。

AnalyzeControlFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主體一部分內的控制流程。

AnalyzeDataFlow(SemanticModel, ConstructorInitializerSyntax)

分析內的 ConstructorInitializerSyntax數據流。

AnalyzeDataFlow(SemanticModel, ExpressionSyntax)

分析內的 ExpressionSyntax數據流。

AnalyzeDataFlow(SemanticModel, PrimaryConstructorBaseTypeSyntax)

分析初始化表達式內的 ArgumentList 數據流。

AnalyzeDataFlow(SemanticModel, StatementSyntax)

分析方法主體一部分內的數據流。

AnalyzeDataFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主體一部分內的數據流。

ClassifyConversion(SemanticModel, ExpressionSyntax, ITypeSymbol, Boolean)

判斷當指定的表達式轉換成指定類型時,會使用哪種類型的轉換。 如果isExplicitInSource為 true,則產生的轉換是,如果轉換完成轉換表達式,則會使用這個轉換。

ClassifyConversion(SemanticModel, Int32, ExpressionSyntax, ITypeSymbol, Boolean)

判斷當指定的表達式轉換成指定類型時,會使用哪種類型的轉換。 如果isExplicitInSource為 true,則產生的轉換是,如果轉換完成轉換表達式,則會使用這個轉換。

GetAliasInfo(SemanticModel, IdentifierNameSyntax, CancellationToken)

如果 nameSyntax 解析為別名名稱,則傳回對應至 A 的 AliasSymbol。否則傳回 null。

GetAwaitExpressionInfo(SemanticModel, AwaitExpressionSyntax)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetCollectionInitializerSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

傳回 () 的 『Add』 方法符號,如果有的話,會對應至 內的 Initializer指定表達式語法。

GetConstantValue(SemanticModel, ExpressionSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetConversion(SemanticModel, SyntaxNode, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetDeclaredSymbol(SemanticModel, AccessorDeclarationSyntax, CancellationToken)

指定宣告屬性或成員存取子的語法節點,請取得對應的符號。

GetDeclaredSymbol(SemanticModel, AnonymousObjectCreationExpressionSyntax, CancellationToken)

假設匿名物件建立表達式的語法節點,請取得匿名物件類型符號。

GetDeclaredSymbol(SemanticModel, AnonymousObjectMemberDeclaratorSyntax, CancellationToken)

假設匿名物件建立初始化表達式的語法節點,請取得匿名物件屬性符號。

GetDeclaredSymbol(SemanticModel, ArgumentSyntax, CancellationToken)

假設 Tuple 自變數的語法節點,請取得 Tuple 元素符號。

GetDeclaredSymbol(SemanticModel, BaseMethodDeclarationSyntax, CancellationToken)

假設有基底方法宣告語法,請取得對應的方法符號。

GetDeclaredSymbol(SemanticModel, BasePropertyDeclarationSyntax, CancellationToken)

指定宣告屬性、索引器或事件的語法節點,取得對應的宣告符號。

GetDeclaredSymbol(SemanticModel, BaseTypeDeclarationSyntax, CancellationToken)

指定類型宣告時,取得對應的類型符號。

GetDeclaredSymbol(SemanticModel, CatchDeclarationSyntax, CancellationToken)

給定 catch 宣告,取得例外狀況變數的符號

GetDeclaredSymbol(SemanticModel, CompilationUnitSyntax, CancellationToken)

給定編譯單位語法,取得對應的簡單程序進入點符號。

GetDeclaredSymbol(SemanticModel, DelegateDeclarationSyntax, CancellationToken)

指定委派宣告時,取得對應的類型符號。

GetDeclaredSymbol(SemanticModel, EnumMemberDeclarationSyntax, CancellationToken)

假設有列舉成員宣告,請取得對應的欄位符號。

GetDeclaredSymbol(SemanticModel, EventDeclarationSyntax, CancellationToken)

指定宣告 (自定義) 事件的語法節點,請取得對應的事件符號。

GetDeclaredSymbol(SemanticModel, ExternAliasDirectiveSyntax, CancellationToken)

假設有一個extern別名宣告會取得所導入之別名的對應符號。

GetDeclaredSymbol(SemanticModel, FileScopedNamespaceDeclarationSyntax, CancellationToken)

給定命名空間宣告語法節點,取得宣告元件的對應命名空間符號。

GetDeclaredSymbol(SemanticModel, ForEachStatementSyntax, CancellationToken)

給定 foreach 語句,取得反覆運算變數的符號

GetDeclaredSymbol(SemanticModel, IndexerDeclarationSyntax, CancellationToken)

指定宣告索引器的語法節點,請取得對應的宣告符號。

GetDeclaredSymbol(SemanticModel, JoinIntoClauseSyntax, CancellationToken)

取得聯結至 子句中宣告的查詢範圍變數。

GetDeclaredSymbol(SemanticModel, LabeledStatementSyntax, CancellationToken)

假設有加上標籤的語句語法,請取得對應的標籤號。

GetDeclaredSymbol(SemanticModel, LocalFunctionStatementSyntax, CancellationToken)

假設有本機函式宣告語法,請取得對應的符號。

GetDeclaredSymbol(SemanticModel, MemberDeclarationSyntax, CancellationToken)

指定成員宣告語法時,取得對應的符號。

GetDeclaredSymbol(SemanticModel, NamespaceDeclarationSyntax, CancellationToken)

給定命名空間宣告語法節點,取得宣告元件的對應命名空間符號。

GetDeclaredSymbol(SemanticModel, ParameterSyntax, CancellationToken)

假設參數宣告語法節點,請取得對應的符號。

GetDeclaredSymbol(SemanticModel, PropertyDeclarationSyntax, CancellationToken)

指定宣告屬性的語法節點,取得對應的已宣告符號。

GetDeclaredSymbol(SemanticModel, QueryClauseSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetDeclaredSymbol(SemanticModel, QueryContinuationSyntax, CancellationToken)

取得在查詢接續子句中宣告的查詢範圍變數。

GetDeclaredSymbol(SemanticModel, SingleVariableDesignationSyntax, CancellationToken)

假設變數宣告子語法,請取得對應的符號。

GetDeclaredSymbol(SemanticModel, SwitchLabelSyntax, CancellationToken)

假設有參數標籤法,請取得對應的標籤號。

GetDeclaredSymbol(SemanticModel, TupleElementSyntax, CancellationToken)

假設有 Tuple 元素語法,請取得對應的符號。

GetDeclaredSymbol(SemanticModel, TupleExpressionSyntax, CancellationToken)

假設 Tuple 表達式的語法節點,請取得 Tuple 類型符號。

GetDeclaredSymbol(SemanticModel, TypeParameterSyntax, CancellationToken)

假設類型參數宣告 (字段或方法) ,請取得對應的符號

GetDeclaredSymbol(SemanticModel, UsingDirectiveSyntax, CancellationToken)

假設 using 宣告會取得所引進之 using 別名的對應符號。

GetDeclaredSymbol(SemanticModel, VariableDeclaratorSyntax, CancellationToken)

假設變數宣告子語法,請取得對應的符號。

GetDeconstructionInfo(SemanticModel, AssignmentExpressionSyntax)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetDeconstructionInfo(SemanticModel, ForEachVariableStatementSyntax)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetForEachStatementInfo(SemanticModel, CommonForEachStatementSyntax)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetForEachStatementInfo(SemanticModel, ForEachStatementSyntax)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetIndexerGroup(SemanticModel, ExpressionSyntax, CancellationToken)

傳回可使用指定表示式做為接收者叫用之可存取的非隱藏索引器清單。

GetMemberGroup(SemanticModel, AttributeSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetMemberGroup(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetMemberGroup(SemanticModel, ExpressionSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetQueryClauseInfo(SemanticModel, QueryClauseSyntax, CancellationToken)

取得與查詢子句相關聯的語意資訊。

GetSpeculativeAliasInfo(SemanticModel, Int32, IdentifierNameSyntax, SpeculativeBindingOption)

系結指定位置內容中的名稱,並查看其是否解析為別名名稱。 如果是,則傳回對應至它的 AliasSymbol。 否則,傳回 null。

GetSpeculativeConversion(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetSpeculativeSymbolInfo(SemanticModel, Int32, AttributeSyntax)

系結指定位置內容中的 屬性,並取得語意資訊,例如類型、符號和診斷。 這個方法可用來取得未實際出現在原始程式碼中之屬性的語意資訊。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ConstructorInitializerSyntax)

系結指定位置內容中的建構函式初始化運算式,並取得類型、符號和診斷等語意資訊。 這個方法可用來取得未實際出現在原始程式碼中之建構函式初始化表達式的語意資訊。

注意:這隻適用於已經有建構函式初始化表達式的位置。

GetSpeculativeSymbolInfo(SemanticModel, Int32, CrefSyntax, SpeculativeBindingOption)

系結指定位置內容中的 CrefSyntax 運算式,並取得符號資訊。 這個方法可用來取得未實際出現在原始程式碼中之表達式的符號資訊。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

系結指定位置內容中的運算式,並取得符號資訊。 這個方法可用來取得未實際出現在原始程式碼中之表達式的符號資訊。

GetSpeculativeSymbolInfo(SemanticModel, Int32, PrimaryConstructorBaseTypeSyntax)

系結指定位置內容中的建構函式初始化運算式,並取得符號的語意資訊。 這個方法可用來取得未實際出現在原始程式碼中之建構函式初始化表達式的語意資訊。

注意:這隻適用於已經有建構函式初始化表達式的位置。 PrimaryConstructorBaseTypeSyntax.

GetSpeculativeTypeInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

系結指定位置內容中的運算式,並取得類型資訊。 這個方法可用來取得未實際出現在原始程式碼中之表達式的類型資訊。

GetSymbolInfo(SemanticModel, AttributeSyntax, CancellationToken)

傳回 () 的符號,如果有的話,指定的屬性語法會系結至程式中。

GetSymbolInfo(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

傳回指定建構函式初始化表達式語法系結至程式中的符號 () 。

GetSymbolInfo(SemanticModel, CrefSyntax, CancellationToken)

取得與檔批注 cref 相關聯的語意資訊。

GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

傳回在程式中系結至的指定表達式語法 () 符號。

這個方法永遠不會傳回 AliasSymbol。 別名所參考的內容會改為傳回。 若要取得別名的相關信息,請呼叫 GetAliasInfo。

如果在表達式 「new C (...) 」 中系結類型名稱 C,系結至 的實際建構函式將會傳回 (,如果多載解析失敗,則會傳回所有建構函式) 。 只要 C 明確系結至具有建構函式的單一類型,就會發生這種情況。 如果 C 模棱兩可地系結至多個類型,或 C 系結至靜態類別,則會傳回類型 (s) 。

GetSymbolInfo(SemanticModel, OrderingSyntax, CancellationToken)

取得 orderby 查詢子句中排序子句的語意資訊。

GetSymbolInfo(SemanticModel, PrimaryConstructorBaseTypeSyntax, CancellationToken)

傳回指定建構函式初始化表達式語法系結至程式中的符號 () 。

GetSymbolInfo(SemanticModel, SelectOrGroupClauseSyntax, CancellationToken)

取得與選取或群組子句相關聯的語意資訊。

GetTypeInfo(SemanticModel, AttributeSyntax, CancellationToken)

取得屬性的類型資訊。

GetTypeInfo(SemanticModel, ConstructorInitializerSyntax, CancellationToken)

取得建構函式初始化表達式的類型資訊。

GetTypeInfo(SemanticModel, ExpressionSyntax, CancellationToken)

取得表達式的類型資訊。

GetTypeInfo(SemanticModel, SelectOrGroupClauseSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ArrowExpressionClauseSyntax, SemanticModel)

取得與這個原始程式碼中未出現之表達式主體相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之表達式主體子部分的詳細語意資訊。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, AttributeSyntax, SemanticModel)

取得與這個原始程式碼中未出現之屬性相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之屬性子部分的詳細語意資訊。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ConstructorInitializerSyntax, SemanticModel)

取得與這個原始程式碼中未出現之建構函式初始化表達式相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之建構函式初始化表達式子部分的詳細語意資訊。

注意:這隻適用於已經有建構函式初始化表達式的位置。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, CrefSyntax, SemanticModel)

取得與這個原始程式碼中未出現之 cref 語法節點相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中 cref 語法子部分的詳細語意資訊。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, EqualsValueClauseSyntax, SemanticModel)

取得與這個原始程式碼中未出現之初始化表達式相關聯的 SemanticModel 物件。 這可用來取得欄位初始化表達式子部分的詳細語意資訊,或未出現在原始碼中的預設參數值。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, PrimaryConstructorBaseTypeSyntax, SemanticModel)

取得與這個原始程式碼中未出現之建構函式初始化表達式相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之建構函式初始化表達式子部分的詳細語意資訊。

注意:這隻適用於已經有建構函式初始化表達式的位置。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, StatementSyntax, SemanticModel)

取得與這個原始程式碼中未出現之語句相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之語句子部分的詳細語意資訊。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, TypeSyntax, SemanticModel, SpeculativeBindingOption)

取得與這個原始程式碼中未出現之類型語法節點相關聯的 SemanticModel 物件。 這可用來取得未出現在原始程式碼中之類型語法子部分的詳細語意資訊。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, AccessorDeclarationSyntax, SemanticModel)

取得與這個原始程式碼中未出現之方法主體相關聯的 SemanticModel 物件。 假設 position 必須位於這個 SemanticModel 根語法節點的現有方法主體內。 在此現有方法主體內宣告的局部變數和標籤,不會被視為在所指定方法主體的範圍內。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, BaseMethodDeclarationSyntax, SemanticModel)

取得與這個原始程式碼中未出現之方法主體相關聯的 SemanticModel 物件。 假設 position 必須位於這個 SemanticModel 根語法節點的現有方法主體內。 在此現有方法主體內宣告的局部變數和標籤,不會被視為在所指定方法主體的範圍內。

AnalyzeControlFlow(SemanticModel, SyntaxNode)

分析方法主體一部分內的控制流程。

AnalyzeControlFlow(SemanticModel, SyntaxNode, SyntaxNode)

分析方法主體一部分內的控制流程。

AnalyzeDataFlow(SemanticModel, SyntaxNode)

分析方法主體一部分內的數據流。 注意 C#) 的 (:此 API 會將建構函式InitializerSyntax 和 PrimaryConstructorBaseTypeSyntax 視為一般語句

AnalyzeDataFlow(SemanticModel, SyntaxNode, SyntaxNode)

分析方法主體一部分內的數據流。

GetAliasInfo(SemanticModel, SyntaxNode, CancellationToken)

如果 「nameSyntax」 解析為別名名稱,則傳回對應至 A 的 IAliasSymbol。否則傳回 null。

GetDeclaredSymbol(SemanticModel, SyntaxNode, CancellationToken)

取得與宣告語法節點相關聯的符號。

GetMemberGroup(SemanticModel, SyntaxNode, CancellationToken)

取得語法節點的方法或索引屬性符號清單。

GetSpeculativeAliasInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的名稱,並查看它是否解析為別名名稱。 如果這樣做,請傳回對應至它的 AliasSymbol。 否則,傳回 null。

GetSpeculativeSymbolInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的節點,並取得語意資訊,例如類型、符號和診斷。 這個方法可用來取得未實際出現在原始程式碼中的表達式語意資訊。

GetSpeculativeTypeInfo(SemanticModel, Int32, SyntaxNode, SpeculativeBindingOption)

系結指定位置內容中的節點,並取得語意資訊,例如類型、符號和診斷。 這個方法可用來取得未實際出現在原始程式碼中的表達式語意資訊。

GetSymbolInfo(SemanticModel, SyntaxNode, CancellationToken)

取得語法節點的符號資訊。

GetTypeInfo(SemanticModel, SyntaxNode, CancellationToken)

取得語法節點的類型資訊。

AnalyzeControlFlow(SemanticModel, StatementSyntax)

分析方法主體一部分內的控制流程。

AnalyzeControlFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析方法主體一部分內的控制流程。

AnalyzeDataFlow(SemanticModel, ExpressionSyntax)

分析表達式內的數據流。

AnalyzeDataFlow(SemanticModel, StatementSyntax)

分析語句內的數據流。

AnalyzeDataFlow(SemanticModel, StatementSyntax, StatementSyntax)

分析一組連續語句內的數據流。

ClassifyConversion(SemanticModel, ExpressionSyntax, ITypeSymbol)

決定表達式語法與指定型別之間有何種轉換。

ClassifyConversion(SemanticModel, Int32, ExpressionSyntax, ITypeSymbol)

決定表達式語法與指定型別之間有何種轉換。

GetAggregateClauseSymbolInfo(SemanticModel, AggregateClauseSyntax, CancellationToken)

傳回與 AggregateClauseSyntax 相關聯之方法的相關信息。

GetAliasInfo(SemanticModel, IdentifierNameSyntax, CancellationToken)

如果 「nameSyntax」 解析為別名名稱,則傳回對應至 A 的 AliasSymbol。否則傳回 null。

GetAwaitExpressionInfo(SemanticModel, AwaitExpressionSyntax, CancellationToken)

取得對應的 AwaitExpressionInfo,其中包含指定 AwaitExpressionSyntax 的語意資訊。

GetCollectionInitializerSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

傳回 () 的 『Add』 方法符號,如果有的話,會對應至 內的 Initializer指定表達式語法。

GetCollectionRangeVariableSymbolInfo(SemanticModel, CollectionRangeVariableSyntax, CancellationToken)

傳回與 CollectionRangeVariableSyntax 相關聯之方法的相關信息。

GetConversion(SemanticModel, SyntaxNode, CancellationToken)

取得對應的 TypeInfo,其中包含指定之 ExpressionSyntax 的語意資訊。

GetDeclaredSymbol(SemanticModel, AccessorStatementSyntax, CancellationToken)

取得指定存取子StatementSyntax的對應 MethodSymbol。

GetDeclaredSymbol(SemanticModel, AggregationRangeVariableSyntax, CancellationToken)

會取得指定 AggregationRangeVariableSyntax 的對應 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, AnonymousObjectCreationExpressionSyntax, CancellationToken)

會取得指定 AnonymousObjectCreationExpressionSyntax 的對應 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, CatchStatementSyntax, CancellationToken)

取得指定 CatchStatementSyntax 的對應 LocalSymbol。

GetDeclaredSymbol(SemanticModel, CollectionRangeVariableSyntax, CancellationToken)

會取得指定之 CollectionRangeVariableSyntax 的對應 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, DeclareStatementSyntax, CancellationToken)

取得指定 DeclareStatementSyntax 的對應符號。

GetDeclaredSymbol(SemanticModel, DelegateStatementSyntax, CancellationToken)

取得指定 DelegateStatementSyntax 的對應 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EnumBlockSyntax, CancellationToken)

取得指定 EnumBlockSyntax 的對應 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EnumMemberDeclarationSyntax, CancellationToken)

取得指定 EnumMemberDeclarationSyntax 的對應 FieldSymbol。

GetDeclaredSymbol(SemanticModel, EnumStatementSyntax, CancellationToken)

取得指定 EnumStatementSyntax 的對應 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, EventBlockSyntax, CancellationToken)

取得指定之 EventBlockSyntax 的對應 EventSymbol。

GetDeclaredSymbol(SemanticModel, EventStatementSyntax, CancellationToken)

取得指定之 EventStatementSyntax 的對應 EventSymbol。

GetDeclaredSymbol(SemanticModel, ExpressionRangeVariableSyntax, CancellationToken)

會取得指定之 ExpressionRangeVariableSyntax 的對應 RangeVariableSymbol。

GetDeclaredSymbol(SemanticModel, FieldInitializerSyntax, CancellationToken)

取得指定 FieldInitializerSyntax 的對應 PropertySymbol。

GetDeclaredSymbol(SemanticModel, LabelStatementSyntax, CancellationToken)

取得指定 LabelStatementSyntax 的對應 LabelSymbol。

GetDeclaredSymbol(SemanticModel, MethodBlockBaseSyntax, CancellationToken)

取得指定 MethodBlockBaseSyntax 的對應 MethodSymbol。

GetDeclaredSymbol(SemanticModel, MethodStatementSyntax, CancellationToken)

取得指定 MethodStatementSyntax 的對應 MethodSymbol。

GetDeclaredSymbol(SemanticModel, ModifiedIdentifierSyntax, CancellationToken)

取得指定標識碼的對應符號。

GetDeclaredSymbol(SemanticModel, NamespaceBlockSyntax, CancellationToken)

取得指定 NamespaceBlockSyntax 的對應 NamespaceSymbol。

GetDeclaredSymbol(SemanticModel, NamespaceStatementSyntax, CancellationToken)

取得指定 NamespaceStatementSyntax 的對應 NamespaceSymbol。

GetDeclaredSymbol(SemanticModel, OperatorStatementSyntax, CancellationToken)

取得指定 OperatorStatementSyntax 的對應 MethodSymbol。

GetDeclaredSymbol(SemanticModel, ParameterSyntax, CancellationToken)

取得指定 ParameterSyntax 的對應 ParameterSymbol。

GetDeclaredSymbol(SemanticModel, PropertyBlockSyntax, CancellationToken)

取得指定之 PropertyBlockSyntax 的對應 PropertySymbol。

GetDeclaredSymbol(SemanticModel, PropertyStatementSyntax, CancellationToken)

取得指定之 PropertyStatementSyntax 的對應 PropertySymbol。

GetDeclaredSymbol(SemanticModel, SimpleImportsClauseSyntax, CancellationToken)

取得指定 AliasImportsClauseSyntax 的對應 AliasSymbol。

GetDeclaredSymbol(SemanticModel, SubNewStatementSyntax, CancellationToken)

會取得指定之 SubNewStatementSyntax 的對應 MethodSymbol。

GetDeclaredSymbol(SemanticModel, TupleElementSyntax, CancellationToken)

取得指定元組項目的對應符號。

GetDeclaredSymbol(SemanticModel, TypeBlockSyntax, CancellationToken)

取得指定之 TypeBlockSyntax 的對應 NamedTypeSymbol。

GetDeclaredSymbol(SemanticModel, TypeParameterSyntax, CancellationToken)

會取得指定之 TypeParameterSyntax 的對應 TypeParameterSymbol 符號。

GetDeclaredSymbol(SemanticModel, TypeStatementSyntax, CancellationToken)

取得指定之 TypeStatementSyntax 的對應 NamedTypeSymbol。

GetForEachStatementInfo(SemanticModel, ForEachBlockSyntax)

取得對應的 ForEachStatementInfo,其中包含指定之 ForBlockSyntax 的語意資訊。

GetForEachStatementInfo(SemanticModel, ForEachStatementSyntax)

取得對應的 ForEachStatementInfo,其中包含指定 ForEachStatementSyntax 的語意資訊。

GetMemberGroup(SemanticModel, AttributeSyntax, CancellationToken)

取得指定 AttributeSyntax 之 Symbols 的對應 ImmutableArray。

GetMemberGroup(SemanticModel, ExpressionSyntax, CancellationToken)

取得指定之 ExpressionSyntax 之符號的對應 ImmutableArray。

GetPreprocessingSymbolInfo(SemanticModel, IdentifierNameSyntax)

如果指定的節點位於前置處理指示詞內,則取得其前置處理符號資訊。

GetSpeculativeAliasInfo(SemanticModel, Int32, IdentifierNameSyntax, SpeculativeBindingOption)

系結指定位置內容中的名稱,並查看其是否解析為別名名稱。 如果是,則傳回對應至它的 AliasSymbol。 否則,傳回 null。

GetSpeculativeConversion(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

GetSpeculativeMemberGroup(SemanticModel, Int32, ExpressionSyntax)

取得符號的相對應 ImmutableArray,用於指定位置的 ExpressionSyntax,用於語意資訊中未出現在原始程式碼中的專案。

GetSpeculativeSymbolInfo(SemanticModel, Int32, AttributeSyntax)

取得對應的 SymbolInfo,其中包含指定之 AttributeSyntax 在指定位置的語意資訊,用於未出現在原始程式碼中的專案語意資訊。

GetSpeculativeSymbolInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

取得對應的 SymbolInfo,其中包含指定 AttributeSyntax 的語意資訊。

GetSpeculativeTypeInfo(SemanticModel, Int32, ExpressionSyntax, SpeculativeBindingOption)

取得對應的 TypeInfo,其中包含在指定位置上推測 ExpressionSyntax 的語意資訊,用於語意資訊中未出現在原始程式碼中的專案。

GetSymbolInfo(SemanticModel, AttributeSyntax, CancellationToken)

取得對應的 SymbolInfo,其中包含指定 AttributeSyntax 的語意資訊。

GetSymbolInfo(SemanticModel, CrefReferenceSyntax, CancellationToken)

取得對應的 SymbolInfo,其中包含指定 CrefReferenceSyntax 的語意資訊。

GetSymbolInfo(SemanticModel, ExpressionRangeVariableSyntax, CancellationToken)

傳回 與 內LetClauseSyntax相關聯的 ExpressionRangeVariableSyntax Select 方法,Microsoft.CodeAnalysis.SymbolInfo.None否則為 。

GetSymbolInfo(SemanticModel, ExpressionSyntax, CancellationToken)

取得對應的 SymbolInfo,其中包含指定之 ExpressionSyntax 的語意資訊。

GetSymbolInfo(SemanticModel, FunctionAggregationSyntax, CancellationToken)

傳回與相關聯的 FunctionAggregationSyntax聚合函數。

GetSymbolInfo(SemanticModel, OrderingSyntax, CancellationToken)

傳回與 OrderingSyntax相關聯的 OrderBy/OrderByDescending/ThenBy/ThenByDescending 方法。

GetSymbolInfo(SemanticModel, QueryClauseSyntax, CancellationToken)

傳回查詢子句的符號資訊。

GetTypeInfo(SemanticModel, AttributeSyntax, CancellationToken)

取得對應的 TypeInfo,其中包含指定 AttributeSyntax 的語意資訊。

GetTypeInfo(SemanticModel, ExpressionSyntax, CancellationToken)

允許在編譯中詢問語法節點樹狀結構的語意問題。 一般而言,實例是由呼叫 GetBinding 在編譯或編譯上取得。

OptionCompareText(SemanticModel)

取得語意模型選項CompareText 屬性。

OptionExplicit(SemanticModel)

取得語意模型選項Explicit 屬性。

OptionInfer(SemanticModel)

取得語意模型 OptionInfer 屬性。

OptionStrict(SemanticModel)

取得語意模型 OptionStrict 屬性。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, AttributeSyntax, SemanticModel)

取得在指定位置之 AttributeSyntax 的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, EqualsValueSyntax, SemanticModel)

取得在指定位置之 EqualsValueSyntax 的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, ExecutableStatementSyntax, SemanticModel)

取得位於指定位置之 ExecutableStatementSyntax 的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, RangeArgumentSyntax, SemanticModel)

取得 RangeArgumentSyntax 在指定位置的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

TryGetSpeculativeSemanticModel(SemanticModel, Int32, TypeSyntax, SemanticModel, SpeculativeBindingOption)

取得位於指定位置之 TypeSyntax 的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

TryGetSpeculativeSemanticModelForMethodBody(SemanticModel, Int32, MethodBlockBaseSyntax, SemanticModel)

取得 MethodBlockBaseSyntax 在指定位置的 SemanticModel,用於未出現在原始程式碼中的專案語意資訊中。

適用於