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


IMethodSymbol Интерфейс

Определение

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

public interface class IMethodSymbol : IEquatable<Microsoft::CodeAnalysis::ISymbol ^>, Microsoft::CodeAnalysis::ISymbol
public interface IMethodSymbol : IEquatable<Microsoft.CodeAnalysis.ISymbol>, Microsoft.CodeAnalysis.ISymbol
type IMethodSymbol = interface
    interface ISymbol
    interface IEquatable<ISymbol>
Public Interface IMethodSymbol
Implements IEquatable(Of ISymbol), ISymbol
Реализации

Комментарии

Этот интерфейс зарезервирован для реализации связанными API. Мы зарезервируем право изменить его в будущем.

Свойства

Имя Описание
Arity

Возвращает arity этого метода. Arity — это число параметров типа, объявляемых методом. Не универсальный метод имеет нулевое arity.

AssociatedAnonymousDelegate

Если этот метод является лямбда-методом (MethodKind = MethodKind.LambdaMethod) и с ним связан анонимный делегат, возвращает этот делегат.

Возвращает значение NULL, если символ не является лямбда-символом или не связан с ним анонимным делегатом.

AssociatedExtensionImplementation

Для метода/доступа или оператора в блоке расширения возвращает соответствующий метод реализации, если он существует. Возвращает значение NULL в противном случае.

Например, учитывая:

static class E
{
    extension(int i)
    {
        public void M() { }
    }
}

При указании символа E.extension(int i).M()метода для возвращается соответствующий статический метод E.M(this int i)реализации.

Если задано определение универсального члена расширения, он возвращает метод реализации, созданный с параметрами типа члена расширения.

AssociatedSymbol

Возвращает символ (например, свойство, событие и т. д.), связанный с методом.

CallingConvention

Перечисление символа метода.

CanBeReferencedByName

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

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

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

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)
ExplicitInterfaceImplementations

Возвращает методы интерфейса, явно реализованные этим методом.

HasUnsupportedMetadata

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

Примеры:

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

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

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

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

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

Возвращает значение true, если этот метод скрывает базовые методы по имени. Это не может быть указано непосредственно на языке C#, но может иметь значение true для методов, определенных на других языках, импортированных из метаданных. Эквивалент флага "hidebyname" в метаданных.

IsAbstract

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

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

Возвращает значение true, если этот метод является асинхронным методом

IsCheckedBuiltin

Возвращает, проверяет ли этот встроенный оператор целочисленный переполнение.

IsConditional

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

IsDefinition

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

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

Возвращает значение true, если этот метод является классическим методом расширения (с помощью this модификатора в C# или ExtensionAttribute в VB).

IsExtern

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

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

Возвращает, является ли этот метод универсальным; т. е. имеет ли он какие-либо параметры типа?

IsImplicitlyDeclared

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

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

Возвращает значение true для методов доступа набора init и false.

IsIterator

Возвращает, true является ли этот метод исходным методом, реализованным как итератор (синхронизация или асинхронная синхронизация)

IsOverride

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

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

Возвращает значение true, если это частичное определение метода без текста. Если существует реализующий текст, его можно получить с PartialImplementationPartпомощью .

IsReadOnly

Указывает, является ли метод чтением, т. е. имеет ли параметр приемника значение "refonly". Возвращает значение true для методов и методов доступа для экземпляров чтения, а также для методов расширения с параметром "this in".

IsSealed

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

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

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

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

Возвращает значение, использует ли этот метод соглашение о вызовах CLI VARARG. Используется для списков аргументов переменных в стиле C. Это крайне редко используется в коде C# и представлено с помощью незадокументированного ключевого слова "__arglist".

Обратите внимание, что методы с параметром params в последнем параметре указываются со свойством IsParams в ParameterSymbol и не представлены этим свойством.

IsVirtual

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

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

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

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

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

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

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

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

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

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

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

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

Возвращает флаги реализации для заданного символа метода.

MethodKind

Возвращает тип метода. В языке C# есть несколько различных типов вещей, представленных как методы. Это свойство позволяет различать эти вещи без необходимости декодировать имя метода.

Name

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

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

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

OverriddenMethod

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

Parameters

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

PartialDefinitionPart

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

PartialImplementationPart

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

ReceiverNullableAnnotation

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

ReceiverType

Если этот метод можно применить к объекту, возвращает тип объекта, к нему применяется.

ReducedFrom

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

RefCustomModifiers

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

RefKind

Возвращает RefKind метода.

ReturnNullableAnnotation

Возвращает значение NULL верхнего уровня возвращаемого типа метода.

ReturnsByRef

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

ReturnsByRefReadonly

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

ReturnsVoid

Возвращает значение true, если этот метод не имеет возвращаемого типа; т. е. возвращает значение void.

ReturnType

Возвращает возвращаемый тип метода.

ReturnTypeCustomModifiers

Возвращает список настраиваемых модификаторов, связанных с типом возвращаемого значения.

TypeArgumentNullableAnnotations

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

TypeArguments

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

TypeArgumentsNullableAnnotations

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

TypeParameters

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

UnmanagedCallingConventionTypes

Типы модификаторов, которые считаются частью соглашения о вызове этого метода, если MethodKind это FunctionPointerSignature и CallingConvention есть Unmanaged. Если это не сигнатура указателя функции или соглашение о вызове не является неуправляемым, это пустой массив. Порядок и дублирование этих модификаторов отражают порядок и дублирование исходных и метаданных, независимо от того, какой из этих символов был получен.

Методы

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

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

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

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

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

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

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

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

Construct(ITypeSymbol[])

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

Equals(ISymbol, SymbolEqualityComparer)

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

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

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

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

Платформа вызывает сведения или значение NULL, если метод не является P/Invoke.

GetDocumentationCommentId()

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

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

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

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

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

GetTypeInferredDuringReduction(ITypeParameterSymbol)

Если этот метод является сокращенным методом расширения, возвращает тип, выводимый во время процесса сокращения для параметра типа.

ReduceExtensionMember(ITypeSymbol)

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

ReduceExtensionMethod(ITypeSymbol)

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

ToDisplayParts(SymbolDisplayFormat)

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

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

Преобразует символ в строковое представление.

(Унаследовано от ISymbol)
ToMinimalDisplayParts(SemanticModel, Int32, SymbolDisplayFormat)

Преобразуйте символ в массив строковых частей, каждый из которых имеет вид. Может быть адаптировано к определенному расположению в исходном коде. Полезно для цвета отображаемой строки.

(Унаследовано от ISymbol)
ToMinimalDisplayString(SemanticModel, Int32, SymbolDisplayFormat)

Преобразуйте символ в строку, которую можно отобразить пользователю. Может быть адаптировано к определенному расположению в исходном коде.

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

Методы расширения

Имя Описание
GetConstructedReducedFrom(IMethodSymbol)

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

HandledEvents(IMethodSymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsMustOverride(ISymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsNotOverridable(ISymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsOverloads(IMethodSymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsOverridable(ISymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsOverrides(ISymbol)

Представляет символ метода или метода (включая конструктор, деструктор, оператор или метод или метод доступа к событиям).

IsShared(ISymbol)

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

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