IArrayTypeSymbol 接口

定义

表示数组。

public interface class IArrayTypeSymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>, Microsoft::CodeAnalysis::ITypeSymbol
public interface IArrayTypeSymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>, Microsoft.CodeAnalysis.ITypeSymbol
type IArrayTypeSymbol = interface
    interface ITypeSymbol
    interface INamespaceOrTypeSymbol
    interface ISymbol
    interface IEquatable<ISymbol>
Public Interface IArrayTypeSymbol
Implements IEquatable(Of ISymbol), ITypeSymbol
实现

注解

此接口由其关联的 API 保留用于实现。 我们保留将来更改它的权利。

属性

AllInterfaces

此类型是声明的子类型(不包括此类型本身)的所有接口的列表。 这包括所有声明的基接口、基类型的所有声明基接口,以及这些结果的所有声明基接口, (递归) 。 这也是类型参数的有效接口集。 每个结果在列表中只显示一次。 此列表按继承关系按拓扑排序:如果接口类型 A 扩展了接口类型 B,则 A 在列表中先于 B。 这与“此类型是适当的子类型的所有接口”不同,因为它不考虑方差:IEnumerable<字符串> 的 AllInterfaces 将不包括 IEnumerable<对象>。

(继承自 ITypeSymbol)
BaseType

此类型的声明基类型,或 null。 对象类型、接口类型和指针类型没有基类型。 类型参数的基类型是其有效的基类。

(继承自 ITypeSymbol)
CanBeReferencedByName

如果此符号可以在代码中按其名称引用,则返回 true。

(继承自 ISymbol)
ContainingAssembly

IAssemblySymbol获取包含程序集的 。 如果符号在多个程序集之间共享,则返回 null。

(继承自 ISymbol)
ContainingModule

IModuleSymbol获取包含模块的 。 如果符号在多个模块之间共享,则返回 null。

(继承自 ISymbol)
ContainingNamespace

INamespaceSymbol获取最接近的封闭命名空间的 。 如果命名空间中不包含符号,则返回 null。

(继承自 ISymbol)
ContainingSymbol

ISymbol获取立即包含符号的 。

(继承自 ISymbol)
ContainingType

INamedTypeSymbol获取包含类型的 。 如果该符号不包含在类型中,则返回 null。

(继承自 ISymbol)
CustomModifiers

与数组类型关联的自定义修饰符;如果没有,则为空数组。

DeclaredAccessibility

获取一个 , Accessibility 指示符号的声明辅助功能。 如果未声明辅助功能,则返回 NotApplicable。

(继承自 ISymbol)
DeclaringSyntaxReferences

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

请注意,对于命名空间符号,声明语法可能声明嵌套命名空间。 例如,“命名空间 N1”中 N1 的声明语法节点。N2 {...}” 是 N1 的整个 NamespaceDeclarationSyntax。N2。 对于全局命名空间,声明语法将是 CompilationUnitSyntax。

(继承自 ISymbol)
ElementNullableAnnotation

获取数组中存储的元素的顶级可为空性。

ElementType

获取存储在数组中的元素的类型。

HasUnsupportedMetadata

指示此符号使用语言不支持的元数据。

示例包括:

  • VB 中的指针类型
  • ByRef 返回类型
  • 必需的自定义修饰符

例如,这与未引用的程序集中定义的元数据符号的引用进行了区分。 此返回 true 的符号永远不能成功使用,因此不应出现在任何 IDE 功能中。

这是为元数据符号设置的,如下所示:

  • 类型 - 如果类型不受支持 (例如,指针类型)
  • 方法 - 不支持参数或返回类型
  • 字段 - 类型不受支持
  • 事件 - 类型不受支持
  • 属性 - 类型不受支持
  • 参数 - 类型不受支持
(继承自 ISymbol)
Interfaces

获取此类型直接实现的接口集。 此集不包括作为直接实现接口的基础接口的接口。 这确实包括声明为类型参数约束的接口。

(继承自 ITypeSymbol)
IsAbstract

获取一个值,该值指示符号是否为抽象符号。

(继承自 ISymbol)
IsAnonymousType

这是匿名类型的符号 (包括匿名 VB 委托) 。

(继承自 ITypeSymbol)
IsDefinition

获取一个值,该值指示符号是否为原始定义。 如果符号派生自另一个符号,则返回 false(按例如的类型替换)。

(继承自 ISymbol)
IsExtern

获取一个值,该值指示符号是否在外部定义。

(继承自 ISymbol)
IsImplicitlyDeclared

如果此符号由编译器自动创建,并且没有显式的相应源代码声明,则返回 true。

(继承自 ISymbol)
IsNamespace

如果此符号是命名空间,则返回 true。 如果它不是命名空间,则它必须是类型。

(继承自 INamespaceOrTypeSymbol)
IsNativeIntegerType

如此 如果类型表示本机整数。 在 C# 中,由语言关键字“nint”和“nuint”表示的类型。

(继承自 ITypeSymbol)
IsOverride

获取一个值,该值指示符号是否是基类符号的替代。

(继承自 ISymbol)
IsReadOnly

如果类型为只读,则为 True。

(继承自 ITypeSymbol)
IsRecord

对于源符号,如果类型为记录,则为 true。 对于元数据符号,如果类型是记录和引用类型,则为 true。

(继承自 ITypeSymbol)
IsReferenceType

如此 如果此类型已知为引用类型。 和 两者都返回 true 的情况IsReferenceTypeIsValueType从来不是这样。 但是,对于非约束类型参数, IsReferenceTypeIsValueType 都将返回 false。

(继承自 ITypeSymbol)
IsRefLikeType

如此 如果类型类似于 ref,这意味着它遵循类似于 CLR by-ref 变量的规则。 如果类型不是 ref 类型,或者语言没有类似 ref 类型的概念,则为 False。

(继承自 ITypeSymbol)
IsSealed

获取一个值,该值指示符号是否密封。

(继承自 ISymbol)
IsStatic

获取一个值,该值指示符号是否为静态。

(继承自 ISymbol)
IsSZArray

这是一个从零开始的一维数组,即 CLR 术语中的 SZArray。 SZArray 是在元数据中编码的数组类型,ELEMENT_TYPE_SZARRAY (始终是具有 0 下限) 的单暗数组。 非 SZArray 类型在元数据中编码,具有ELEMENT_TYPE_ARRAY和可选大小和下限。 尽管非 SZArray 也可以是下限为 0 的单 dim 数组,但元数据中这些类型的编码是不同的。

IsTupleType

这是元组 的符号。

(继承自 ITypeSymbol)
IsType

如果此符号是类型,则返回 true。 如果不是类型,则它必须是命名空间。

(继承自 INamespaceOrTypeSymbol)
IsUnmanagedType

如此 如果类型是非托管语言规则。 如果托管或语言没有非托管类型的概念,则为 False。

(继承自 ITypeSymbol)
IsValueType

如此 如果此类型已知为值类型。 和 两者都返回 true 的情况IsReferenceTypeIsValueType从来不是这样。 但是,对于非约束类型参数, IsReferenceTypeIsValueType 都将返回 false。

(继承自 ITypeSymbol)
IsVirtual

获取一个值,该值指示符号是否为虚拟。

(继承自 ISymbol)
Kind

获取指示 SymbolKind 它是哪种符号的 。

(继承自 ISymbol)
Language

获取源语言 (“C#”或“Visual Basic”) 。

(继承自 ISymbol)
Locations

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

(继承自 ISymbol)
LowerBounds

按位置指定维度的下限。 长度可以小于 Rank,这意味着某些尾随维度未指定下限。 最常见的情况是所有维度都是零边界 - 默认 (在这种情况下,VB) 数组中不返回任何内容。

MetadataName

获取在元数据中显示的符号的名称。 大多数情况下,这与 Name 属性相同,但有以下例外情况:

  1. 泛型类型的元数据名称包括“'1”、“'2”等后缀,这些后缀指示类型参数的数量, (它不包括) 包含类型或命名空间的名称。
  2. 与 name 属性相比,显式接口名称的元数据名称删除了空格。
  3. 名称的长度限制为不超过元数据限制。
(继承自 ISymbol)
MetadataToken

获取与此符号关联的元数据标记;如果未从元数据加载符号,则为 0。

(继承自 ISymbol)
Name

获取符号名称。 如果未命名,则返回空字符串。

(继承自 ISymbol)
NullableAnnotation

与类型关联的可为 Null 注释; None 如果没有,则为 Null。

(继承自 ITypeSymbol)
OriginalDefinition

此符号的原始定义。 如果此符号是通过类型替换从另一个符号构造的,则 OriginalDefinition 获取原始符号(如在源或元数据中定义的那样)。

(继承自 ITypeSymbol)
Rank

获取此数组的维度数。 常规单维数组具有排名 1,二维数组具有排名 2,等等。

Sizes

按位置指定维度的大小。 长度可以小于 Rank,这意味着某些尾随维度没有指定大小。 最常见的情况是没有指定大小的维度 - 返回空数组。

SpecialType

一个枚举值,用于标识某些“特殊”类型,例如 ObjectNone如果类型不特殊,则返回 。

(继承自 ITypeSymbol)
TypeKind

一个枚举值,该值标识此类型是否为数组、指针、枚举等。

(继承自 ITypeSymbol)

方法

Accept(SymbolVisitor)

表示数组。

(继承自 ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

表示数组。

(继承自 ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

表示数组。

(继承自 ISymbol)
Equals(IArrayTypeSymbol)

表示数组。

Equals(ISymbol, SymbolEqualityComparer)

根据提供的 规则确定此符号是否等于另一个符号 SymbolEqualityComparer

(继承自 ISymbol)
FindImplementationForInterfaceMember(ISymbol)

返回此类型中的相应符号或实现 interfaceMember (隐式或显式) 的基类型;如果不存在此类符号 (,则返回 null,可能是因为此类型未实现 interfaceMember 的容器,或者此类型不提供成功实现 interfaceMember) 的成员。

(继承自 ITypeSymbol)
GetAttributes()

获取符号的属性。 如果没有属性,则返回空 IEnumerable<T>

(继承自 ISymbol)
GetDocumentationCommentId()

返回符号的文档注释 ID;如果符号不支持文档注释,则返回 null。

(继承自 ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

获取 XML (,作为与 符号关联的注释的文本) 。

(继承自 ISymbol)
GetMembers()

获取此符号的所有成员。

(继承自 INamespaceOrTypeSymbol)
GetMembers(String)

获取具有特定名称的此符号的所有成员。

(继承自 INamespaceOrTypeSymbol)
GetTypeMembers()

获取此符号的所有类型成员。

(继承自 INamespaceOrTypeSymbol)
GetTypeMembers(String)

获取此符号的所有成员,这些成员是具有特定名称的类型,任何 arity。

(继承自 INamespaceOrTypeSymbol)
GetTypeMembers(String, Int32)

获取此符号的所有成员,这些成员是具有特定名称和 arity 的类型

(继承自 INamespaceOrTypeSymbol)
ToDisplayParts(NullableFlowState, SymbolDisplayFormat)

将符号转换为字符串部分数组,其中每个部分都有一个类型。 用于着色显示字符串。

(继承自 ITypeSymbol)
ToDisplayParts(SymbolDisplayFormat)

将符号转换为字符串部分数组,其中每个部分都有一个类型。 用于着色显示字符串。

(继承自 ISymbol)
ToDisplayString(NullableFlowState, SymbolDisplayFormat)

ITypeSymbol 和 可为 null 的流状态转换为字符串表示形式。

(继承自 ITypeSymbol)
ToDisplayString(SymbolDisplayFormat)

将符号转换为字符串表示形式。

(继承自 ISymbol)
ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

将符号转换为字符串部分数组,其中每个部分都有一个类型。 可以针对源代码中的特定位置进行定制。 用于着色显示字符串。

(继承自 ISymbol)
ToMinimalDisplayParts(SemanticModel, NullableFlowState, Int32, SymbolDisplayFormat)

将符号转换为字符串部分数组,其中每个部分都有一个类型。 可以针对源代码中的特定位置进行定制。 用于着色显示字符串。

(继承自 ITypeSymbol)
ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

将符号转换为可向用户显示的字符串。 可以针对源代码中的特定位置进行定制。

(继承自 ISymbol)
ToMinimalDisplayString(SemanticModel, NullableFlowState, Int32, SymbolDisplayFormat)

将符号转换为可向用户显示的字符串。 可以针对源代码中的特定位置进行定制。

(继承自 ITypeSymbol)
WithNullableAnnotation(NullableAnnotation)

返回与此类型相同的类型,但具有给定的可为 null 注释。

(继承自 ITypeSymbol)

扩展方法

IsMustOverride(ISymbol)

表示数组。

IsNotOverridable(ISymbol)

表示数组。

IsOverridable(ISymbol)

表示数组。

IsOverrides(ISymbol)

表示数组。

IsShared(ISymbol)

确定符号是否为“共享”。

适用于