ITypeParameterSymbol 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示泛型类型或泛型方法中的类型参数。
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 |
如果为类型参数指定了无参数构造函数约束 ( |
HasNotNullConstraint |
如果为类型参数指定了 notnull 约束 ( |
HasReferenceTypeConstraint |
如果为类型参数指定了引用类型约束 ( |
HasUnmanagedTypeConstraint |
如果为类型参数指定了值类型约束 ( |
HasUnsupportedMetadata |
指示此符号使用语言不支持的元数据。 示例包括:
例如,这不同于对未引用的程序集中定义的元数据符号的引用。 返回 true 的符号永远不能成功使用,因此不应出现在任何 IDE 功能中。 这是针对元数据符号设置的,如下所示:
|
HasValueTypeConstraint |
如果为类型参数指定了值类型约束 ( |
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。 但是,对于不受约束的类型参数, IsReferenceType 和 IsValueType 都将返回 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。 但是,对于不受约束的类型参数, IsReferenceType 和 IsValueType 都将返回 false。 (继承自 ITypeSymbol) |
IsVirtual |
获取一个值,该值指示符号是否为虚拟。 (继承自 ISymbol) |
Kind |
获取指示 SymbolKind 它是哪种符号的 。 (继承自 ISymbol) |
Language |
获取源语言 (“C#”或“Visual Basic”) 。 (继承自 ISymbol) |
Locations |
获取最初在源或元数据中定义符号的位置。 某些符号 (例如,分部类) 可能在多个位置定义。 (继承自 ISymbol) |
MetadataName |
获取符号在元数据中显示的名称。 大多数情况下,这与 Name 属性相同,但以下情况除外:
|
MetadataToken |
获取与此符号关联的元数据标记;如果未从元数据加载符号,则为 0。 (继承自 ISymbol) |
Name |
获取符号名称。 如果未命名,则返回空字符串。 (继承自 ISymbol) |
NullableAnnotation |
与类型关联的可为空批注;如果没有, None 则为 Null。 (继承自 ITypeSymbol) |
Ordinal |
类型参数在声明该参数的参数列表中的序号位置。 第一个类型参数具有序号零。 |
OriginalDefinition |
获取此类型符号的原始定义。 如果此符号是通过 (例如) 类型替换从另一个符号派生的,则会获取原始符号,因为它是在源或元数据中定义的。 |
ReducedFrom |
如果这是缩减扩展方法的类型参数,则获取从中缩减此类型参数的类型参数定义。 否则,返回 Nothing。 |
ReferenceTypeConstraintNullableAnnotation |
如果 HasReferenceTypeConstraint 为 true,则返回为类型参数指定的约束的 |
SpecialType |
一个枚举值,该值标识某些“特殊”类型,例如 Object。 None如果类型不特殊,则返回 。 (继承自 ITypeSymbol) |
TypeKind |
一个枚举值,该值标识此类型是否为数组、指针、枚举等。 (继承自 ITypeSymbol) |
TypeParameterKind |
此类型参数的类型参数类型。 |
Variance |
类型参数声明的方差注释(如果有)。 类型参数可以声明为协变 ( |
方法
扩展方法
IsMustOverride(ISymbol) |
表示泛型类型或泛型方法中的类型参数。 |
IsNotOverridable(ISymbol) |
表示泛型类型或泛型方法中的类型参数。 |
IsOverridable(ISymbol) |
表示泛型类型或泛型方法中的类型参数。 |
IsOverrides(ISymbol) |
表示泛型类型或泛型方法中的类型参数。 |
IsShared(ISymbol) |
确定符号是否为“共享”。 |