Поделиться через


INamedTypeSymbol Интерфейс

Определение

Представляет тип, отличный от массива, указателя, параметра типа.

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 в списке. Это не совсем то же самое, что "все интерфейсы, в которых этот тип является правильным подтипом", так как он не учитывает дисперсию: AllInterfaces для строки IEnumerable<не будет включать объект> 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).

Обратите внимание, что для частичных элементов (методов, свойств, событий) это свойство возвращает только один синтаксический узел. Чтобы получить все синтаксические узлы для частичного элемента, используйте PartialDefinitionPart свойства IMethodSymbolв PartialImplementationPart , IPropertySymbolили IEventSymbol.

Обратите внимание, что для символа пространства имен декларативный синтаксис может объявлять вложенное пространство имен. Например, декларативный узел синтаксиса для N1 в пространстве имен N1. N2 {...}" — это все пространство именDeclarationSyntax для N1. N2. Для глобального пространства имен декларативный синтаксис будет компилятором CompilationUnitSyntax.

(Унаследовано от ISymbol)
DelegateInvokeMethod

Для типов делегатов получает метод вызова делегата. Возвращает значение NULL для всех других типов типов. Обратите внимание, что у него есть недопустимый тип делегата, импортированный из метаданных, у которого нет метода Invoke. Такой тип будет классифицирован как делегат, но его ДелегатInvokeMethod будет иметь значение NULL.

EnumUnderlyingType

Для типов перечисления возвращает базовый тип. Возвращает значение NULL для всех других типов типов.

ExtensionGroupingName

Для расширений возвращает синтезированный идентификатор для типа группировки. Возвращает значение NULL в противном случае. Примечание. Имя метаданных для универсальных типов группирования включает суффикс arity, поэтому отличается от свойства ExtensionGroupingName.

ExtensionMarkerName

Для расширений возвращает синтезированный идентификатор для типа маркера. Возвращает значение NULL в противном случае.

ExtensionParameter

Параметр расширения, если это объявление расширения (IsExtension имеет значение true). Примечание. Это может иметь значение NULL, даже если IsExtension имеет значение true, в случаях ошибок.

HasUnsupportedMetadata

Указывает, что этот символ использует метаданные, которые не могут поддерживаться языком.

Примеры:

  • Типы указателей в VB
  • Тип возвращаемого значения ByRef
  • Обязательные настраиваемые модификаторы

Это отличается от ссылок на символы метаданных, определенные в сборках, на которые не ссылались. Символы, в которых это возвращает значение true, никогда не могут использоваться успешно, поэтому никогда не должны отображаться в любой функции интегрированной среды разработки.

Это задано для символов метаданных, как показано ниже.

  • Тип — если тип не поддерживается (например, тип указателя)
  • Метод — параметр или тип возвращаемого значения не поддерживается
  • Поле — тип не поддерживается
  • Событие — тип не поддерживается
  • Свойство — тип не поддерживается
  • Параметр — тип не поддерживается

(Унаследовано от ISymbol)
InstanceConstructors

Получите конструкторы экземпляров для этого типа.

Interfaces

Возвращает набор интерфейсов, которые этот тип реализует напрямую. Этот набор не включает интерфейсы, которые являются базовыми интерфейсами непосредственно реализованных интерфейсов. К ним относятся интерфейсы, объявленные как ограничения для параметров типа.

(Унаследовано от ITypeSymbol)
IsAbstract

Возвращает значение, указывающее, является ли символ абстрактным.

(Унаследовано от ISymbol)
IsAnonymousType

Это символ анонимного типа (включая анонимный делегат VB).

(Унаследовано от ITypeSymbol)
IsComImport

Указывает, что класс или интерфейс импортируются из другого модуля. См Import . и ComImportAttribute

IsDefinition

Возвращает значение, указывающее, является ли символ исходным определением. Возвращает значение false, если символ является производным от другого символа, по подстановки типов для экземпляра.

(Унаследовано от ISymbol)
IsExtension

Это символ объявления расширения.

IsExtern

Возвращает значение, указывающее, определен ли символ внешне.

(Унаследовано от ISymbol)
IsFileLocal

Указывает, что тип объявлен в источнике и отображается только в файле, в который он объявлен.

IsGenericType

Значение true, если этот тип или какой-либо содержащий тип имеет параметры типа.

IsImplicitClass

Возвращает значение true, если тип является неявным классом, который содержит недопустимые глобальные члены (например, методы или инструкции в файле, отличном от скрипта).

IsImplicitlyDeclared

Возвращает значение true, если этот символ был автоматически создан компилятором и не имеет явного объявления исходного кода.

(Унаследовано от ISymbol)
IsNamespace

Возвращает значение true, если этот символ является пространством имен. Если это не пространство имен, он должен быть типом.

(Унаследовано от INamespaceOrTypeSymbol)
IsNativeIntegerType

Значение True, если тип представляет собственное целое число. В C#типы, представленные ключевыми словами языка nint и nuint.

(Унаследовано от ITypeSymbol)
IsOverride

Возвращает значение, указывающее, является ли символ переопределением символа базового класса.

(Унаследовано от ISymbol)
IsReadOnly

Значение True, если тип является чтением.

(Унаследовано от ITypeSymbol)
IsRecord

Для исходных символов значение true, если тип является записью. Для символов метаданных значение true, если тип является записью и ссылочным типом.

(Унаследовано от ITypeSymbol)
IsReferenceType

Значение True, если этот тип, как известно, является ссылочным типом. Это никогда не так, что IsReferenceType и IsValueType оба возвращают значение true. Однако для параметра IsReferenceType без ограничений типа и IsValueType возвращает значение false.

(Унаследовано от ITypeSymbol)
IsRefLikeType

Значение True, если тип является ref-like, то есть он соответствует правилам, аналогичным переменным clR by-ref. Значение false, если тип не является ref-like или если язык не имеет понятия о типах ссылок.

(Унаследовано от ITypeSymbol)
IsScriptClass

Возвращает значение true, если тип является классом Script. Это может быть интерактивный класс отправки или класс Script в csx-файле.

IsSealed

Возвращает значение, указывающее, запечатывается ли символ.

(Унаследовано от ISymbol)
IsSerializable

Значение True, если тип сериализуем (имеет флаг метаданных с возможностью сериализации).

IsStatic

Возвращает значение, указывающее, является ли символ статическим.

(Унаследовано от ISymbol)
IsTupleType

Это символ кортежа.

(Унаследовано от ITypeSymbol)
IsType

Возвращает значение true, если этот символ является типом. Если он не является типом, он должен быть пространством имен.

(Унаследовано от INamespaceOrTypeSymbol)
IsUnboundGenericType

Значение True, если это ссылка на несвязанный универсальный тип. Универсальный тип считается несвязанным , если все списки аргументов типа в полном имени пусты. Обратите внимание, что аргументы типа несвязанного универсального типа будут возвращены в виде типов ошибок, так как они не имеют аргументов типа. Несвязанный универсальный тип возвращает значение NULL для baseType и пустой результат для интерфейсов.

IsUnmanagedType

Значение True, если тип неуправляем в соответствии с правилами языка. Значение false, если управляемое или если язык не имеет понятия неуправляемых типов.

(Унаследовано от ITypeSymbol)
IsValueType

Значение true, если этот тип известен как тип значения. Это никогда не так, что IsReferenceType и IsValueType оба возвращают значение true. Однако для параметра IsReferenceType без ограничений типа и IsValueType возвращает значение false.

(Унаследовано от ITypeSymbol)
IsVirtual

Возвращает значение, указывающее, является ли символ виртуальным.

(Унаследовано от ISymbol)
Kind

Получает значение SymbolKind , указывающее, какой символ он имеет.

(Унаследовано от ISymbol)
Language

Получает исходный язык ("C#" или "Visual Basic").

(Унаследовано от ISymbol)
Locations

Возвращает расположения, в которых символ был первоначально определен в исходном или метаданных. Некоторые символы (например, частичные типы, такие как классы, структуры и интерфейсы) могут быть определены в нескольких расположениях. Обратите внимание, что для частичных элементов (таких как методы, свойства и события), это свойство возвращает только одно расположение. Чтобы получить все расположения для частичного элемента, используйте PartialDefinitionPart свойства IMethodSymbolв PartialImplementationPart , IPropertySymbolили IEventSymbol.

(Унаследовано от ISymbol)
MemberNames

Возвращает коллекцию имен членов, объявленных в этом типе.

MetadataName

Возвращает имя символа, как оно отображается в метаданных. В большинстве случаев это то же самое, что и свойство Name, причем следующие исключения:

  1. Имя метаданных универсальных типов включает суффикс "1", "'2" и т. д. суффикс, указывающий количество параметров типа (оно не включает, однако, имена содержащих типы или пространства имен).
  2. Имя метаданных явных имен интерфейсов удаляет пробелы по сравнению со свойством name.
  3. Длина имен ограничена не превышением ограничений метаданных.
(Унаследовано от ISymbol)
MetadataToken

Возвращает маркер метаданных, связанный с этим символом, или 0, если символ не загружен из метаданных.

(Унаследовано от ISymbol)
MightContainExtensionMethods

Определяет, может ли символ содержать методы расширения. Если значение false, символ не содержит методов расширения.

Name

Возвращает имя символа. Возвращает пустую строку, если имя не указано.

(Унаследовано от ISymbol)
NativeIntegerUnderlyingType

Если это собственное целое число, возвращает символ базового типа либо IntPtrUIntPtr. В противном случае возвращает значение NULL.

NullableAnnotation

Заметка, связанная с типом, или None если нет.

(Унаследовано от ITypeSymbol)
OriginalDefinition

Получите исходное определение этого символа типа. Если этот символ является производным от другого символа с помощью подстановки типа (скажем), он получает исходный символ, так как он был определен в исходном или метаданных.

SpecialType

Перечисленное значение, определяющее определенные "специальные" типы, такие как Object. Возвращает, None если тип не является особенным.

(Унаследовано от ITypeSymbol)
StaticConstructors

Получите статические конструкторы для этого типа.

TupleElements

Возвращает поля, представляющие элементы кортежа для типов, которые являются кортежами.

Если этот тип не является кортежем, возвращается значение по умолчанию.

TupleUnderlyingType

Если это тип кортежа с именами элементов, возвращает символ для типа кортежа без имен. В противном случае возвращает значение NULL. Аргумент типа, соответствующий типу поля расширения (VT[8]. Rest), который находится в позиции 8-го (один на основе) всегда является символом для другого кортежа, а не его базовым типом.

TypeArgumentNullableAnnotations

Возвращает значение NULL верхнего уровня аргументов типа, которые были заменены параметрами типа. Если для данного параметра типа ничего не было заменено, None возвращается для этого аргумента типа.

TypeArguments

Возвращает аргументы типа, которые были заменены параметрами типа. Если для заданного параметра типа ничего не было заменено, сам параметр типа считается аргументом типа.

TypeArgumentsNullableAnnotations

Возвращает значение NULL верхнего уровня аргументов типа, которые были заменены параметрами типа. Если для данного параметра типа ничего не было заменено, NotApplicable возвращается для этого аргумента типа.

TypeKind

Перечисленное значение, определяющее, является ли этот тип массивом, указателем, перечислением и т. д.

(Унаследовано от ITypeSymbol)
TypeParameters

Возвращает параметры типа, имеющиеся в этом типе. Если это не универсальный тип, возвращает пустой неизменяемыйArray.

Методы

Имя Описание
Accept(SymbolVisitor)

Представляет тип, отличный от массива, указателя, параметра типа.

(Унаследовано от ISymbol)
Accept<TArgument,TResult>(SymbolVisitor<TArgument,TResult>, TArgument)

Представляет тип, отличный от массива, указателя, параметра типа.

(Унаследовано от ISymbol)
Accept<TResult>(SymbolVisitor<TResult>)

Представляет тип, отличный от массива, указателя, параметра типа.

(Унаследовано от ISymbol)
Construct(ImmutableArray<ITypeSymbol>, ImmutableArray<NullableAnnotation>)

Возвращает созданный тип с учетом аргументов типа и заметок, допускающих значение NULL.

Construct(ITypeSymbol[])

Возвращает созданный тип с учетом аргументов типа.

ConstructUnboundGenericType()

Возвращает несвязанный универсальный тип этого именованного типа.

Equals(ISymbol, SymbolEqualityComparer)

Определяет, равен ли этот символ другому, в соответствии с правилами предоставленных SymbolEqualityComparer

(Унаследовано от ISymbol)
FindImplementationForInterfaceMember(ISymbol)

Возвращает соответствующий символ в этом типе или базовый тип, реализующий интерфейсMember (неявно или явно), или null, если такой символ отсутствует (это может быть либо потому, что этот тип не реализует контейнер interfaceMember, либо этот тип не предоставляет член, который успешно реализует интерфейсMember).

(Унаследовано от ITypeSymbol)
GetAttributes()

Возвращает атрибуты для символа. Возвращает пустое значение ImmutableArray<T> , если атрибуты отсутствуют.

(Унаследовано от ISymbol)
GetDocumentationCommentId()

Возвращает идентификатор комментария документации для символа или значение NULL, если символ не поддерживает комментарии документации.

(Унаследовано от ISymbol)
GetDocumentationCommentXml(CultureInfo, Boolean, CancellationToken)

Возвращает XML-код (в виде текста) для комментария, связанного с символом.

(Унаследовано от ISymbol)
GetMembers()

Получите все члены этого символа.

(Унаследовано от INamespaceOrTypeSymbol)
GetMembers(String)

Получите все члены этого символа с определенным именем.

(Унаследовано от INamespaceOrTypeSymbol)
GetTypeArgumentCustomModifiers(Int32)

Возвращает настраиваемые модификаторы для аргумента типа, который был заменен параметром типа. Модификаторы соответствуют аргументу типа в том же порядковом номере в массиве TypeArguments . Возвращает пустой массив, если модификаторов нет.

GetTypeMembers()

Получите все члены этого символа, которые являются типами.

(Унаследовано от INamespaceOrTypeSymbol)
GetTypeMembers(String, Int32)

Получение всех элементов этого символа, которые являются типами, имеющими определенное имя и arity

(Унаследовано от INamespaceOrTypeSymbol)
GetTypeMembers(String)

Получите все члены этого символа, которые являются типами, имеющими определенное имя, любого 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)

Определяет, является ли символ общим.

Применяется к