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


CodeClass.AddBase - метод

Добавляет элемент в список унаследованных объектов.

Пространство имен:  EnvDTE
Сборка:  EnvDTE (в EnvDTE.dll)

Синтаксис

'Декларация
Function AddBase ( _
    Base As Object, _
    Position As Object _
) As CodeElement
CodeElement AddBase(
    Object Base,
    Object Position
)
CodeElement^ AddBase(
    Object^ Base, 
    Object^ Position
)
abstract AddBase : 
        Base:Object * 
        Position:Object -> CodeElement 
function AddBase(
    Base : Object, 
    Position : Object
) : CodeElement

Параметры

  • Base
    Тип: System.Object
    Обязательный.Класс, производной от которого является реализация.
    Для объектов CodeClass это может быть либо объект CodeClass, либо полное имя типа.Для полных имен типов в Visual C++ необходимо использовать формат с разделителем в виде двух двоеточий (::).Все остальные языки поддерживают формат с разделителем-точкой.
  • Position
    Тип: System.Object
    Необязательный.Значение по умолчанию: 0Элемент кода, после которого добавляется новый элемент.Если значением является CodeElement, то новый элемент добавляется сразу после него.
    Если значение имеет тип данных Long, тогда параметр AddBase указывает элемент, после которого добавляется новый элемент.
    Поскольку в коллекциях нумерация элементов начинается с 1, значение 0 означает, что новый элемент следует поместить в начало коллекции.Значение -1 означает, что элемент следует поместить в конец.

Возвращаемое значение

Тип: EnvDTE.CodeElement
Объект CodeElement.

Заметки

AddBase возвращает объект CodeElement, а не CodeType, для совместимости с Visual C++ .NET, и Kind возвращаемого объекта равен vsCMElementVCBase для реализации Visual C++ .NET.

Примечание

Значения элементов модели кода, таких как классы, структуры, функции, атрибуты, делегаты и другие, после внесения некоторых изменений могут оказаться недетерминированными, другими словами, нельзя рассчитывать, что их значения будут всегда оставаться одинаковыми.Дополнительные сведения см. в разделе "Значения элементов модели кода могут изменяться" раздела Практическое руководство. Поиск кода при помощи модели кода (Visual Basic).

Примеры

Sub AddBaseExample(ByVal dte As DTE2)

    ' Before running this example, open a code document from a project
    ' and place the insertion point inside a class definition.
    Try
        ' Retrieve the CodeClass at the insertion point.
        Dim sel As TextSelection = _
            CType(dte.ActiveDocument.Selection, TextSelection)
        Dim cls As CodeClass = _
            CType(sel.ActivePoint.CodeElement( _
            vsCMElement.vsCMElementClass), CodeClass)
        Dim cm As CodeModel = _
            cls.ProjectItem.ContainingProject.CodeModel

        ' Create a fully qualified base name.
        Dim baseName As String = ConvertFullName(cm, _
            "System.Collections.CollectionBase")

        ' Add a base to the class.
        cls.AddBase(baseName)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub

Function ConvertFullName(ByVal cm As CodeModel, _
    ByVal fullName As String) As String

    ' Convert a .NET type name into a C++ type name.
    If (cm.Language = CodeModelLanguageConstants.vsCMLanguageVC) Or _
        (cm.Language = CodeModelLanguageConstants.vsCMLanguageMC) Then
        Return fullName.Replace(".", "::")
    Else
        Return fullName
    End If

End Function
public void AddBaseExample(DTE2 dte)
{
    // Before running this example, open a code document from a project
    // and place the insertion point inside a class definition.
    try
    {
        // Retrieve the CodeClass at the insertion point.
        TextSelection sel = 
            (TextSelection)dte.ActiveDocument.Selection;
        CodeClass cls = 
            (CodeClass)sel.ActivePoint.get_CodeElement(
            vsCMElement.vsCMElementClass);
        CodeModel cm = cls.ProjectItem.ContainingProject.CodeModel;

        // Create a fully qualified base name.
        string baseName = ConvertFullName(cm, 
            "System.Collections.CollectionBase");

        // Add a base to the class.
        cls.AddBase(baseName, -1);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

string ConvertFullName(CodeModel cm, string fullName)
{
    // Convert a .NET type name into a C++ type name.
    if ((cm.Language == CodeModelLanguageConstants.vsCMLanguageVC) || 
        (cm.Language == CodeModelLanguageConstants.vsCMLanguageMC))
        return fullName.Replace(".", "::");
    else
        return fullName;
}

Безопасность платформы .NET Framework

См. также

Ссылки

CodeClass Интерфейс

EnvDTE - пространство имен

Другие ресурсы

Практическое руководство. Компиляция и выполнение примеров кода модели объектов автоматизации

Практическое руководство. Поиск кода при помощи модели кода (Visual Basic)

Практическое руководство. Поиск кода при помощи модели кода (Visual C#)