Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Компилятор создает строку идентификатора для каждой конструкции в коде, помеченной для создания документации. (Сведения о тегах кода см. в тегах комментариев XML.) Строка идентификатора однозначно идентифицирует конструкцию. Программы, обрабатывающие XML-файл, могут использовать строку идентификатора для идентификации соответствующего элемента метаданных и отражения .NET Framework.
XML-файл не является иерархическим представлением кода; Это плоский список с созданным идентификатором для каждого элемента.
Компилятор наблюдает следующие правила при создании строк идентификатора:
Пробелы в строку не вставляются.
Первая часть строки идентификатора определяет тип идентифицируемого элемента с одним символом, за которым следует двоеточие. Используются следующие типы элементов.
Персонаж | Описание |
---|---|
Н | пространство имен К пространству имен нельзя добавлять комментарии документации, но на них можно делать ссылки CREF, если это поддерживается. |
Т | тип: Class , , Module Interface Structure , Enum Delegate |
Ф | поле: Dim |
П | свойство: Property (включая свойства по умолчанию) |
M | метод: Sub , , Function Declare Operator |
Е | событие: Event |
! | Строка ошибки Остальная часть строки содержит сведения об ошибке. Компилятор Visual Basic создает сведения об ошибках для ссылок, которые не могут быть разрешены. |
Вторая часть
String
— полное имя элемента, начиная с корня пространства имен. Имя элемента, его тип(ы), в которые он заключен, и его пространство имен разделяются точками. Если имя самого элемента содержит периоды, они заменяются знаком номера (#). Предполагается, что ни один элемент не имеет знака номера непосредственно в его имени. Например, полностью квалифицированное имя конструктораString
будетSystem.String.#ctor
.Для свойств и методов, если в методе есть аргументы, список аргументов, заключенный в круглые скобки, идет после. Если аргументов нет, круглые скобки отсутствуют. Аргументы разделяются запятыми. Кодировка каждого аргумента следует непосредственно тому, как он закодирован в сигнатуре .NET Framework.
Пример
В следующем коде показано, как создаются строки идентификатора для класса и его членов.
Namespace SampleNamespace
''' <summary>Signature is
''' "T:SampleNamespace.SampleClass"
''' </summary>
Public Class SampleClass
''' <summary>Signature is
''' "M:SampleNamespace.SampleClass.#ctor"
''' </summary>
Public Sub New()
End Sub
''' <summary>Signature is
''' "M:SampleNamespace.SampleClass.#ctor(System.Int32)"
''' </summary>
Public Sub New(ByVal i As Integer)
End Sub
''' <summary>Signature is
''' "F:SampleNamespace.SampleClass.SampleField"
''' </summary>
Public SampleField As String
''' <summary>Signature is
''' "F:SampleNamespace.SampleClass.SampleConstant"
''' </summary>
Public Const SampleConstant As Integer = 42
''' <summary>Signature is
''' "M:SampleNamespace.SampleClass.SampleFunction"
''' </summary>
Public Function SampleFunction() As Integer
End Function
''' <summary>Signature is
''' "M:SampleNamespace.SampleClass.
''' SampleFunction(System.Int16[],System.Int32[0:,0:])"
''' </summary>
Public Function SampleFunction(
ByVal array1D() As Short,
ByVal array2D(,) As Integer) As Integer
End Function
''' <summary>Signature is
''' "M:SampleNamespace.SampleClass.
''' op_Addition(SampleNamespace.SampleClass,
''' SampleNamespace.SampleClass)"
''' </summary>
Public Shared Operator +(
ByVal operand1 As SampleClass,
ByVal operand2 As SampleClass) As SampleClass
Return Nothing
End Operator
''' <summary>Signature is
''' "P:SampleNamespace.SampleClass.SampleProperty"
''' </summary>
Public Property SampleProperty() As Integer
Get
End Get
Set(ByVal value As Integer)
End Set
End Property
''' <summary>Signature is
''' "P:SampleNamespace.SampleClass.Item(System.String)"
''' </summary>
Default Public ReadOnly Property Item(
ByVal s As String) As Integer
Get
End Get
End Property
''' <summary>Signature is
''' "T:SampleNamespace.SampleClass.NestedClass"
''' </summary>
Public Class NestedClass
End Class
''' <summary>Signature is
''' "E:SampleNamespace.SampleClass.SampleEvent(System.Int32)"
''' </summary>
Public Event SampleEvent As SampleDelegate
''' <summary>Signature is
''' "T:SampleNamespace.SampleClass.SampleDelegate"
''' </summary>
Public Delegate Sub SampleDelegate(ByVal i As Integer)
End Class
End Namespace