ITypeParameterSymbol 接口

定义

表示泛型类型或泛型方法中的类型参数。

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

注解

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

属性

AllInterfaces

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

(继承自 ITypeSymbol)
BaseType

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

(继承自 ITypeSymbol)
CanBeReferencedByName

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

(继承自 ISymbol)
ConstraintNullableAnnotations

直接指定为约束类型约束的顶级 Null 能力。

ConstraintTypes

直接指定为类型参数约束的类型。

ContainingAssembly

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

(继承自 ISymbol)
ContainingModule

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

(继承自 ISymbol)
ContainingNamespace

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

(继承自 ISymbol)
ContainingSymbol

ISymbol获取立即包含符号的 。

(继承自 ISymbol)
ContainingType

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

(继承自 ISymbol)
DeclaredAccessibility

获取一个 Accessibility ,它指示符号的声明可访问性。 如果未声明可访问性,则返回 NotApplicable。

(继承自 ISymbol)
DeclaringMethod

声明类型参数的方法,或 null。

DeclaringSyntaxReferences

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

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

(继承自 ISymbol)
DeclaringType

声明类型参数的类型,或 null。

HasConstructorConstraint

如果为类型参数指定了无参数构造函数约束 (new()) ,则为 True。

HasNotNullConstraint

如果为类型参数指定了 notnull 约束 (notnull) ,则为 True。

HasReferenceTypeConstraint

如果为类型参数指定了引用类型约束 (class) ,则其值为 True。

HasUnmanagedTypeConstraint

如果为类型参数指定了值类型约束 (unmanaged) ,则为 True。

HasUnsupportedMetadata

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

示例包括:

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

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

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

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

如果为类型参数指定了值类型约束 (struct) ,则为 True。

Interfaces

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

(继承自 ITypeSymbol)
IsAbstract

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

(继承自 ISymbol)
IsAnonymousType

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

(继承自 ITypeSymbol)
IsDefinition

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

(继承自 ISymbol)
IsExtern

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

(继承自 ISymbol)
IsImplicitlyDeclared

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

(继承自 ISymbol)
IsNamespace

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

(继承自 INamespaceOrTypeSymbol)
IsNativeIntegerType

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

(继承自 ITypeSymbol)
IsOverride

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

(继承自 ISymbol)
IsReadOnly

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

(继承自 ITypeSymbol)
IsRecord

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

(继承自 ITypeSymbol)
IsReferenceType

如此 如果此类型已知为引用类型。 和 IsValueType 都返回 true 绝不是这种情况IsReferenceType。 但是,对于不受约束的类型参数, IsReferenceTypeIsValueType 都将返回 false。

(继承自 ITypeSymbol)
IsRefLikeType

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

(继承自 ITypeSymbol)
IsSealed

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

(继承自 ISymbol)
IsStatic

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

(继承自 ISymbol)
IsTupleType

这是元组 的符号。

(继承自 ITypeSymbol)
IsType

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

(继承自 INamespaceOrTypeSymbol)
IsUnmanagedType

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

(继承自 ITypeSymbol)
IsValueType

如果已知此类型是值类型,则为 True。 和 IsValueType 都返回 true 绝不是这种情况IsReferenceType。 但是,对于不受约束的类型参数, IsReferenceTypeIsValueType 都将返回 false。

(继承自 ITypeSymbol)
IsVirtual

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

(继承自 ISymbol)
Kind

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

(继承自 ISymbol)
Language

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

(继承自 ISymbol)
Locations

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

(继承自 ISymbol)
MetadataName

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

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

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

(继承自 ISymbol)
Name

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

(继承自 ISymbol)
NullableAnnotation

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

(继承自 ITypeSymbol)
Ordinal

类型参数在声明该参数的参数列表中的序号位置。 第一个类型参数具有序号零。

OriginalDefinition

获取此类型符号的原始定义。 如果此符号是通过 (例如) 类型替换从另一个符号派生的,则会获取原始符号,因为它是在源或元数据中定义的。

ReducedFrom

如果这是缩减扩展方法的类型参数,则获取从中缩减此类型参数的类型参数定义。 否则,返回 Nothing。

ReferenceTypeConstraintNullableAnnotation

如果 HasReferenceTypeConstraint 为 true,则返回为类型参数指定的约束的 class 顶级为 Null 性。 如果没有 class 约束,则返回 None

SpecialType

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

(继承自 ITypeSymbol)
TypeKind

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

(继承自 ITypeSymbol)
TypeParameterKind

此类型参数的类型参数类型。

Variance

类型参数声明的方差注释(如果有)。 类型参数可以声明为协变 (out) 、逆变 (in) ,或者两者都不声明。

方法

Accept(SymbolVisitor)

表示泛型类型或泛型方法中的类型参数。

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

表示泛型类型或泛型方法中的类型参数。

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

表示泛型类型或泛型方法中的类型参数。

(继承自 ISymbol)
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)

返回与该类型相同的类型,但具有给定的可为空批注。

(继承自 ITypeSymbol)

扩展方法

IsMustOverride(ISymbol)

表示泛型类型或泛型方法中的类型参数。

IsNotOverridable(ISymbol)

表示泛型类型或泛型方法中的类型参数。

IsOverridable(ISymbol)

表示泛型类型或泛型方法中的类型参数。

IsOverrides(ISymbol)

表示泛型类型或泛型方法中的类型参数。

IsShared(ISymbol)

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

适用于