IErrorTypeSymbol 接口

定义

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

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

注解

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

属性

AllInterfaces

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

(继承自 ITypeSymbol)
Arity

返回此类型的 arity,或它采用的类型参数数。 非泛型类型具有零 arity。

(继承自 INamedTypeSymbol)
AssociatedSymbol

对于隐式声明的委托类型,返回导致生成此委托类型的 EventSymbol。 对于所有其他类型,返回 null。 请注意,将来可能会扩展一组可能的关联符号,以反映语言的变化。

(继承自 INamedTypeSymbol)
BaseType

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

(继承自 ITypeSymbol)
CanBeReferencedByName

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

(继承自 ISymbol)
CandidateReason

如果 CandidateSymbols 返回一个或多个符号,则 返回未选择这些符号的原因。 否则,返回 None。

CandidateSymbols

构造此类型时,可能存在看似用户预期但不适合的符号。 例如,类型可能无法访问或不明确。 此属性返回用户可能预期的可能符号。 如果未找到任何可能的符号,它将不返回任何符号。 请参阅 CandidateReason 属性,了解符号为何不合适。

ConstructedFrom

返回构造此类型的类型符号。 如果有任何) ,此类型符号具有相同的包含类型 (,但其类型参数与类型参数 (相同,尽管其包含类型可能不会) 。

(继承自 INamedTypeSymbol)
Constructors

获取此类型的实例构造函数和静态构造函数。

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

(继承自 INamedTypeSymbol)
EnumUnderlyingType

对于枚举类型,获取基础类型。 对所有其他类型的类型返回 null。

(继承自 INamedTypeSymbol)
HasUnsupportedMetadata

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

示例包括:

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

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

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

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

获取此类型的实例构造函数。

(继承自 INamedTypeSymbol)
Interfaces

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

(继承自 ITypeSymbol)
IsAbstract

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

(继承自 ISymbol)
IsAnonymousType

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

(继承自 ITypeSymbol)
IsComImport

指定此类或接口从另一个模块导入。 请参见ImportComImportAttribute

(继承自 INamedTypeSymbol)
IsDefinition

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

(继承自 ISymbol)
IsExtern

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

(继承自 ISymbol)
IsFileLocal

指示类型在源中声明,并且仅在声明它的文件中可见。

(继承自 INamedTypeSymbol)
IsGenericType

如果此类型或某个包含类型具有类型参数,则为 True。

(继承自 INamedTypeSymbol)
IsImplicitClass

如果类型是包含无效全局成员的隐式类, (非脚本文件中的方法或语句) ,则返回 true。

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

如果类型为 Script 类,则返回 true。 它可能是交互式提交类或 csx 文件中的 Script 类。

(继承自 INamedTypeSymbol)
IsSealed

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

(继承自 ISymbol)
IsSerializable

如此 如果类型是可序列化的 (具有可序列化的元数据标志) 。

(继承自 INamedTypeSymbol)
IsStatic

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

(继承自 ISymbol)
IsTupleType

这是元组 的符号。

(继承自 ITypeSymbol)
IsType

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

(继承自 INamespaceOrTypeSymbol)
IsUnboundGenericType

如果这是对 未绑定 泛型类型的引用,则为 True。 如果泛型类型的完全限定名称中的所有类型参数列表均为空,则被视为 未绑定 。 请注意,未绑定泛型类型的类型参数将作为错误类型返回,因为它们实际上没有类型参数。 未绑定泛型类型为其 BaseType 生成 null,为其接口生成空结果。

(继承自 INamedTypeSymbol)
IsUnmanagedType

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

(继承自 ITypeSymbol)
IsValueType

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

(继承自 ITypeSymbol)
IsVirtual

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

(继承自 ISymbol)
Kind

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

(继承自 ISymbol)
Language

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

(继承自 ISymbol)
Locations

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

(继承自 ISymbol)
MemberNames

返回在此类型中声明的成员的名称的集合。

(继承自 INamedTypeSymbol)
MetadataName

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

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

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

(继承自 ISymbol)
MightContainExtensionMethods

确定符号是否可能包含扩展方法。 如果为 false,则符号不包含扩展方法。

(继承自 INamedTypeSymbol)
Name

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

(继承自 ISymbol)
NativeIntegerUnderlyingType

如果这是本机整数,则 返回基础类型的符号 或 IntPtrUIntPtr。 否则,返回 null。

(继承自 INamedTypeSymbol)
NullableAnnotation

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

(继承自 ITypeSymbol)
OriginalDefinition

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

(继承自 ITypeSymbol)
SpecialType

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

(继承自 ITypeSymbol)
StaticConstructors

获取此类型的静态构造函数。

(继承自 INamedTypeSymbol)
TupleElements

返回表示属于元组的类型的元组元素的字段。

如果此类型不是元组,则返回默认值。

(继承自 INamedTypeSymbol)
TupleUnderlyingType

如果这是具有元素名称的元组类型,则 返回不带名称的元组类型的符号。 否则,返回 null。 与扩展字段的类型对应的类型参数 (VT[8]。Rest) 位于第 8 个 (一个基于) 位置始终是另一个元组的符号,而不是其基础类型。

(继承自 INamedTypeSymbol)
TypeArgumentNullableAnnotations

返回已替换类型参数的类型参数的顶级为 Null 性。 如果给定类型参数没有替代任何内容,则 None 为该类型参数返回 。

(继承自 INamedTypeSymbol)
TypeArguments

返回已替换类型参数的类型参数。 如果尚未将任何内容替换为给定的类型参数,则类型参数本身被视为类型参数。

(继承自 INamedTypeSymbol)
TypeArgumentsNullableAnnotations

返回已替换类型参数的类型参数的顶级为 Null 性。 如果给定类型参数没有替代任何内容,则 NotApplicable 为该类型参数返回 。

(继承自 INamedTypeSymbol)
TypeKind

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

(继承自 ITypeSymbol)
TypeParameters

返回此类型具有的类型参数。 如果这是非泛型类型,则返回空的 ImmutableArray。

(继承自 INamedTypeSymbol)

方法

Accept(SymbolVisitor)

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

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

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

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

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

(继承自 ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

返回给定类型参数和类型参数可为空注释的构造类型。

(继承自 INamedTypeSymbol)
Construct(ITypeSymbol[])

返回给定类型参数的构造类型。

(继承自 INamedTypeSymbol)
ConstructUnboundGenericType()

返回此命名类型的未绑定泛型类型。

(继承自 INamedTypeSymbol)
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)
GetTypeArgumentCustomModifiers(Int32)

返回已替换类型参数的类型参数的自定义修饰符。 修饰符对应于数组中 TypeArguments 相同序号处的类型参数。 如果没有修饰符,则返回空数组。

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

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

IsNotOverridable(ISymbol)

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

IsOverridable(ISymbol)

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

IsOverrides(ISymbol)

当编译器由于错误而无法确定要返回的符号对象时,将使用 IErrorTypeSymbol。 例如,如果字段声明为“Goo x;”,并且找不到类型“Goo”,则当询问字段“x”的类型时,将返回 IErrorTypeSymbol。

IsShared(ISymbol)

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

适用于