次の方法で共有


ISymbol インターフェイス

定義

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

public interface class ISymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>
public interface ISymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>
type ISymbol = interface
    interface IEquatable<ISymbol>
Public Interface ISymbol
Implements IEquatable(Of ISymbol)
派生
実装

注釈

このインターフェイスは、関連付けられている API によって実装用に予約されています。 当社は、将来変更する権利を留保します。

プロパティ

名前 説明
CanBeReferencedByName

このシンボルをコード内の名前で参照できる場合は true を返します。

ContainingAssembly

包含アセンブリの IAssemblySymbol を取得します。 シンボルが複数のアセンブリ間で共有されている場合は null を返します。

ContainingModule

包含モジュールの IModuleSymbol を取得します。 シンボルが複数のモジュール間で共有されている場合は null を返します。

ContainingNamespace

最も近い外側の名前空間の INamespaceSymbol を取得します。 シンボルが名前空間に含まれていない場合は null を返します。

ContainingSymbol

すぐに含まれるシンボルの ISymbol を取得します。

ContainingType

包含型の INamedTypeSymbol を取得します。 シンボルが型内に含まれていない場合は null を返します。

DeclaredAccessibility

シンボルの宣言されたアクセシビリティを示す Accessibility を取得します。 アクセシビリティが宣言されていない場合は NotApplicable を返します。

DeclaringSyntaxReferences

このシンボルがソースで宣言された構文ノードを取得します。 一部のシンボル (クラス、構造体、インターフェイスなどの部分型など) は、複数の場所で定義できます。 このプロパティは、シンボルがソース コードで宣言されていて、暗黙的に宣言されていない場合にのみ、1 つ以上の構文ノードを返す必要があります (IsImplicitlyDeclared プロパティを参照)。

部分メンバー (メソッド、プロパティ、イベント) の場合、このプロパティは 1 つの構文ノードのみを返します。 部分メンバーのすべての構文ノードを取得するには、IMethodSymbolIPropertySymbol、またはIEventSymbolPartialDefinitionPartプロパティとPartialImplementationPart プロパティを使用します。

名前空間シンボルの場合、宣言する構文が入れ子になった名前空間を宣言している可能性があることに注意してください。 たとえば、"namespace N1" の N1 の宣言構文ノードです。N2 {...}" は N1 の NamespaceDeclarationSyntax 全体です。N2。 グローバル名前空間の場合、宣言構文は CompilationUnitSyntax になります。

HasUnsupportedMetadata

このシンボルが、言語でサポートできないメタデータを使用することを示します。

例を次に示します。

  • VB でのポインター型
  • ByRef 戻り値の型
  • 必要なカスタム修飾子

これは、たとえば、参照されなかったアセンブリで定義されているメタデータ シンボルへの参照とは区別されます。 これが true を返すシンボルは正常に使用できないので、IDE 機能には表示されません。

これは、次のようにメタデータ シンボルに対して設定されます。

  • 型 - 型がサポートされていない場合 (ポインター型など)
  • メソッド - パラメーターまたは戻り値の型はサポートされていません
  • フィールド - 型はサポートされていません
  • イベント - 型はサポートされていません
  • プロパティ - 型はサポートされていません
  • パラメーター - 型はサポートされていません

IsAbstract

シンボルが抽象であるかどうかを示す値を取得します。

IsDefinition

シンボルが元の定義であるかどうかを示す値を取得します。 シンボルが別のシンボルから派生した場合、たとえば型の置換によって false を返します。

IsExtern

シンボルが外部で定義されているかどうかを示す値を取得します。

IsImplicitlyDeclared

このシンボルがコンパイラによって自動的に作成され、明示的に対応するソース コード宣言がない場合は true を返します。

IsOverride

シンボルが基底クラスシンボルのオーバーライドであるかどうかを示す値を取得します。

IsSealed

シンボルがシールされているかどうかを示す値を取得します。

IsStatic

シンボルが静的かどうかを示す値を取得します。

IsVirtual

シンボルが仮想かどうかを示す値を取得します。

Kind

シンボルの種類を示す SymbolKind を取得します。

Language

ソース言語 ("C#" または "Visual Basic") を取得します。

Locations

ソースまたはメタデータでシンボルが最初に定義された場所を取得します。 一部のシンボル (クラス、構造体、インターフェイスなどの部分型など) は、複数の場所で定義できます。 部分メンバー (メソッド、プロパティ、イベントなど) の場合、このプロパティは 1 つの場所のみを返します。 部分メンバーのすべての場所を取得するには、IMethodSymbolIPropertySymbol、またはIEventSymbolPartialDefinitionPartプロパティとPartialImplementationPart プロパティを使用します。

MetadataName

メタデータに表示されるシンボルの名前を取得します。 ほとんどの場合、これは Name プロパティと同じですが、次の例外があります。

  1. ジェネリック型のメタデータ名には、型パラメーターの数を示す "'1"、"'2" などのサフィックスが含まれます (ただし、含まれる型または名前空間の名前は含まれません)。
  2. 明示的なインターフェイス名のメタデータ名には、name プロパティと比較してスペースが削除されています。
  3. 名前の長さは、メタデータの制限を超えないように制限されます。
MetadataToken

このシンボルに関連付けられているメタデータ トークンを取得します。シンボルがメタデータから読み込まれていない場合は 0 を取得します。

Name

シンボル名を取得します。 名前が指定されていない場合は空の文字列を返します。

OriginalDefinition

シンボルの元の定義の ISymbol を取得します。 このシンボルが別のシンボルから派生した場合、たとえば型の置換によって、ソースまたはメタデータで定義された元のシンボルが取得されます。

メソッド

名前 説明
Accept(SymbolVisitor)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

Accept<TResult>(SymbolVisitor<TResult>)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

Equals(ISymbol, SymbolEqualityComparer)

指定されたシンボルの規則に従って、このシンボルが別のシンボルと等しいかどうかを判断します。 SymbolEqualityComparer

GetAttributes()

シンボルの属性を取得します。 属性がない場合は、空の ImmutableArray<T> を返します。

GetDocumentationCommentId()

シンボルのドキュメント コメント ID を返します。シンボルがドキュメント コメントをサポートしていない場合は null を返します。

GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

シンボルに関連付けられたコメントの XML (テキストとして) を取得します。

ToDisplayParts(SymbolDisplayFormat)

シンボルを文字列部分の配列に変換します。それぞれに種類があります。 表示文字列の色付けに便利です。

ToDisplayString(SymbolDisplayFormat)

シンボルを文字列形式に変換します。

ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

シンボルを文字列部分の配列に変換します。それぞれに種類があります。 ソース コード内の特定の場所に合わせて調整できます。 表示文字列の色付けに便利です。

ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

シンボルを、ユーザーに表示できる文字列に変換します。 ソース コード内の特定の場所に合わせて調整できます。

拡張メソッド

名前 説明
IsMustOverride(ISymbol)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

IsNotOverridable(ISymbol)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

IsOverridable(ISymbol)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

IsOverrides(ISymbol)

コンパイラによって公開されるシンボル (名前空間、クラス、メソッド、パラメーターなど) を表します。

IsShared(ISymbol)

シンボルが Shared であるかどうかを判断します。

適用対象