INamedTypeSymbol 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示数组、指针、类型参数以外的类型。
public interface class INamedTypeSymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>, Microsoft::CodeAnalysis::ITypeSymbol
public interface INamedTypeSymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>, Microsoft.CodeAnalysis.ITypeSymbol
type INamedTypeSymbol = interface
interface ITypeSymbol
interface INamespaceOrTypeSymbol
interface ISymbol
interface IEquatable<ISymbol>
Public Interface INamedTypeSymbol
Implements IEquatable(Of ISymbol), ITypeSymbol
- 派生
- 实现
注解
此接口由其关联的 API 保留用于实现。 我们保留将来更改它的权利。
属性
AllInterfaces |
此类型是声明的子类型(不包括此类型本身)的所有接口的列表。 这包括所有声明的基接口、基类型的所有声明基接口,以及这些结果的所有声明基接口, (递归) 。 这也是类型参数的有效接口集。 每个结果在列表中只显示一次。 此列表按继承关系按拓扑排序:如果接口类型 A 扩展了接口类型 B,则 A 在列表中先于 B。 这与“此类型是适当的子类型的所有接口”不同,因为它不考虑方差:IEnumerable<字符串> 的 AllInterfaces 将不包括 IEnumerable<对象>。 (继承自 ITypeSymbol) |
Arity |
返回此类型的 arity,或它采用的类型参数数。 非泛型类型具有零 arity。 |
AssociatedSymbol |
对于隐式声明的委托类型,返回导致生成此委托类型的 EventSymbol。 对于所有其他类型,返回 null。 请注意,将来可能会扩展一组可能的关联符号,以反映语言的变化。 |
BaseType |
此类型的声明基类型,或 null。 对象类型、接口类型和指针类型没有基类型。 类型参数的基类型是其有效的基类。 (继承自 ITypeSymbol) |
CanBeReferencedByName |
如果此符号可以在代码中按其名称引用,则返回 true。 (继承自 ISymbol) |
ConstructedFrom |
返回构造此类型的类型符号。 如果有任何) ,此类型符号具有相同的包含类型 (,但其类型参数与类型参数 (相同,尽管其包含类型可能不会) 。 |
Constructors |
获取此类型的实例构造函数和静态构造函数。 |
ContainingAssembly |
获取 IAssemblySymbol 包含程序集的 。 如果符号在多个程序集之间共享,则返回 null。 (继承自 ISymbol) |
ContainingModule |
获取 IModuleSymbol 包含模块的 。 如果符号在多个模块之间共享,则返回 null。 (继承自 ISymbol) |
ContainingNamespace |
INamespaceSymbol获取最近的封闭命名空间的 。 如果命名空间中不包含符号,则返回 null。 (继承自 ISymbol) |
ContainingSymbol |
ISymbol获取立即包含符号的 。 (继承自 ISymbol) |
ContainingType |
INamedTypeSymbol获取包含类型的 。 如果类型中不包含符号,则返回 null。 (继承自 ISymbol) |
DeclaredAccessibility |
获取一个 Accessibility ,它指示符号的声明可访问性。 如果未声明可访问性,则返回 NotApplicable。 (继承自 ISymbol) |
DeclaringSyntaxReferences |
获取语法节点 (在源中声明此符号的) 。 某些符号 (例如,分部类) 可能在多个位置定义。 仅当符号在源代码中声明并且未隐式声明 (请参阅 IsImplicitlyDeclared 属性) 时,此属性才应返回一个或多个语法节点。 请注意,对于命名空间符号,声明语法可能是声明嵌套命名空间。 例如,在“namespace N1”中声明 N1 的语法节点。N2 {...}” 是 N1 的整个 NamespaceDeclarationSyntax。N2。 对于全局命名空间,声明语法将是 CompilationUnitSyntax。 (继承自 ISymbol) |
DelegateInvokeMethod |
对于委托类型,获取委托的调用方法。 对所有其他类型的类型返回 null。 请注意,有可能从没有 Invoke 方法的元数据导入格式错误委托类型。 此类类型将分类为委托,但其 DelegateInvokeMethod 将为 null。 |
EnumUnderlyingType |
对于枚举类型,获取基础类型。 对所有其他类型的类型返回 null。 |
HasUnsupportedMetadata |
指示此符号使用语言不支持的元数据。 示例包括:
例如,这不同于对未引用的程序集中定义的元数据符号的引用。 返回 true 的符号永远不能成功使用,因此不应出现在任何 IDE 功能中。 这是为元数据符号设置的,如下所示:
|
InstanceConstructors |
获取此类型的实例构造函数。 |
Interfaces |
获取此类型直接实现的接口集。 此集不包括作为直接实现接口的基础接口的接口。 这确实包括声明为类型参数约束的接口。 (继承自 ITypeSymbol) |
IsAbstract |
获取一个值,该值指示符号是否为抽象符号。 (继承自 ISymbol) |
IsAnonymousType |
这是匿名类型的符号 (包括匿名 VB 委托) 。 (继承自 ITypeSymbol) |
IsComImport |
指定此类或接口从另一个模块导入。 请参见Import和ComImportAttribute |
IsDefinition |
获取一个值,该值指示符号是否为原始定义。 如果符号派生自另一个符号,则返回 false(按例如的类型替换)。 (继承自 ISymbol) |
IsExtern |
获取一个值,该值指示符号是否在外部定义。 (继承自 ISymbol) |
IsFileLocal |
指示类型在源中声明,并且仅在声明它的文件中可见。 |
IsGenericType |
如果此类型或某个包含类型具有类型参数,则为 True。 |
IsImplicitClass |
如果类型是包含无效全局成员的隐式类, (非脚本文件中的方法或语句) ,则返回 true。 |
IsImplicitlyDeclared |
如果此符号由编译器自动创建,并且没有显式的相应源代码声明,则返回 true。 (继承自 ISymbol) |
IsNamespace |
如果此符号是命名空间,则返回 true。 如果它不是命名空间,则它必须是 类型。 (继承自 INamespaceOrTypeSymbol) |
IsNativeIntegerType |
如此 如果类型表示本机整数。 在 C# 中,由语言关键字“nint”和“nuint”表示的类型。 (继承自 ITypeSymbol) |
IsOverride |
获取一个值,该值指示符号是否是基类符号的替代。 (继承自 ISymbol) |
IsReadOnly |
如果类型为只读,则为 True。 (继承自 ITypeSymbol) |
IsRecord |
对于源符号,如果类型为记录,则为 true。 对于元数据符号,如果类型是记录和引用类型,则为 true。 (继承自 ITypeSymbol) |
IsReferenceType |
如此 如果此类型已知为引用类型。 和 两者都返回 true 的情况IsReferenceTypeIsValueType从来不是这样。 但是,对于非约束类型参数, IsReferenceType 和 IsValueType 都将返回 false。 (继承自 ITypeSymbol) |
IsRefLikeType |
如此 如果类型类似于 ref,这意味着它遵循类似于 CLR by-ref 变量的规则。 如果类型不是 ref 类型,或者语言没有类似 ref 类型的概念,则为 False。 (继承自 ITypeSymbol) |
IsScriptClass |
如果类型为 Script 类,则返回 true。 它可能是交互式提交类或 csx 文件中的 Script 类。 |
IsSealed |
获取一个值,该值指示符号是否密封。 (继承自 ISymbol) |
IsSerializable |
如此 如果类型是可序列化的 (具有可序列化的元数据标志) 。 |
IsStatic |
获取一个值,该值指示符号是否为静态。 (继承自 ISymbol) |
IsTupleType |
这是元组 的符号。 (继承自 ITypeSymbol) |
IsType |
如果此符号是类型,则返回 true。 如果它不是类型,则它必须是命名空间。 (继承自 INamespaceOrTypeSymbol) |
IsUnboundGenericType |
如果这是对 未绑定 泛型类型的引用,则为 True。 如果泛型类型的完全限定名称中的所有类型参数列表均为空,则被视为 未绑定 。 请注意,未绑定泛型类型的类型参数将作为错误类型返回,因为它们实际上没有类型参数。 未绑定泛型类型为其 BaseType 生成 null,为其接口生成空结果。 |
IsUnmanagedType |
如此 如果类型是非托管语言规则。 如果托管或语言没有非托管类型的概念,则为 False。 (继承自 ITypeSymbol) |
IsValueType |
如此 如果此类型已知为值类型。 和 两者都返回 true 的情况IsReferenceTypeIsValueType从来不是这样。 但是,对于非约束类型参数, IsReferenceType 和 IsValueType 都将返回 false。 (继承自 ITypeSymbol) |
IsVirtual |
获取一个值,该值指示符号是否为虚拟。 (继承自 ISymbol) |
Kind |
获取指示 SymbolKind 它是哪种符号的 。 (继承自 ISymbol) |
Language |
获取源语言 (“C#”或“Visual Basic”) 。 (继承自 ISymbol) |
Locations |
获取最初在源或元数据中定义符号的位置。 某些符号 (例如,分部类) 可以在多个位置定义。 (继承自 ISymbol) |
MemberNames |
返回在此类型中声明的成员的名称的集合。 |
MetadataName |
获取在元数据中显示的符号的名称。 大多数情况下,这与 Name 属性相同,但有以下例外情况:
|
MetadataToken |
获取与此符号关联的元数据标记;如果未从元数据加载符号,则为 0。 (继承自 ISymbol) |
MightContainExtensionMethods |
确定符号是否可能包含扩展方法。 如果为 false,则符号不包含扩展方法。 |
Name |
获取符号名称。 如果未命名,则返回空字符串。 (继承自 ISymbol) |
NativeIntegerUnderlyingType | |
NullableAnnotation |
与类型关联的可为 Null 注释; None 如果没有,则为 Null。 (继承自 ITypeSymbol) |
OriginalDefinition |
获取此类型符号的原始定义。 如果此符号是通过 (例如) 类型替换从另一个符号派生的,则会获取原始符号,因为它是在源或元数据中定义的。 |
SpecialType |
一个枚举值,用于标识某些“特殊”类型,例如 Object。 None如果类型不特殊,则返回 。 (继承自 ITypeSymbol) |
StaticConstructors |
获取此类型的静态构造函数。 |
TupleElements |
返回表示属于元组的类型的元组元素的字段。 如果此类型不是元组,则返回默认值。 |
TupleUnderlyingType |
如果这是具有元素名称的元组类型,则 返回不带名称的元组类型的符号。 否则,返回 null。 与扩展字段的类型对应的类型参数 (VT[8]。Rest) 位于第 8 个 (一个基于) 位置始终是另一个元组的符号,而不是其基础类型。 |
TypeArgumentNullableAnnotations |
返回已替换类型参数的类型参数的顶级为 Null 性。 如果给定类型参数没有替代任何内容,则 None 为该类型参数返回 。 |
TypeArguments |
返回已替换类型参数的类型参数。 如果尚未将任何内容替换为给定的类型参数,则类型参数本身被视为类型参数。 |
TypeArgumentsNullableAnnotations |
返回已替换类型参数的类型参数的顶级为 Null 性。 如果给定类型参数没有替代任何内容,则 NotApplicable 为该类型参数返回 。 |
TypeKind |
一个枚举值,该值标识此类型是否为数组、指针、枚举等。 (继承自 ITypeSymbol) |
TypeParameters |
返回此类型具有的类型参数。 如果这是非泛型类型,则返回空的 ImmutableArray。 |
方法
扩展方法
IsMustOverride(ISymbol) |
表示数组、指针、类型参数以外的类型。 |
IsNotOverridable(ISymbol) |
表示数组、指针、类型参数以外的类型。 |
IsOverridable(ISymbol) |
表示数组、指针、类型参数以外的类型。 |
IsOverrides(ISymbol) |
表示数组、指针、类型参数以外的类型。 |
IsShared(ISymbol) |
确定符号是否为“共享”。 |