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

获取语法节点 () 源中声明此符号的位置。 例如,某些符号 (,可以在多个位置定义分部类) 。 仅当符号在源代码中声明并且未隐式声明 (看到 IsImplicitlyDeclared 属性) 时,此属性才应返回一个或多个语法节点。

请注意,对于命名空间符号,声明语法可能声明嵌套命名空间。 例如,“命名空间 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

获取最初在源或元数据中定义符号的位置。 例如,某些符号 (,可以在多个位置定义分部类) 。

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()

获取符号的属性。 如果没有属性,则返回空 IEnumerable<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)

确定是否共享符号。

适用于