Condividi tramite


Metodo CodeClass2.AddBase

Aggiunge un elemento all'elenco degli oggetti ereditati.

Spazio dei nomi:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Sintassi

'Dichiarazione
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

Parametri

  • Base
    Tipo: Object

    Obbligatorio. Classe da cui derivare l'implementazione, un oggetto CodeClass o un nome di tipo completo. Il linguaggio nativo Visual C ++ richiede il formato separato dai due punti (::) per i nomi di tipo completi. In tutti gli altri linguaggi viene utilizzato il formato separato dal punto.

  • Position
    Tipo: Object

    Facoltativa. Valore predefinito = 0. Elemento di codice dopo il quale deve essere aggiunta la nuova base.

    Se il valore è un tipo di dati Long, Position indicherà l'elemento dopo il quale deve essere aggiunta la nuova base.

    Poiché nelle raccolte il conteggio inizia da 1, il valore 0 indica che il nuovo elemento deve essere inserito all'inizio della raccolta. Il valore -1 indica invece che l'elemento deve essere inserito alla fine.

Valore restituito

Tipo: CodeElement
Oggetto CodeElement.

Note

Il metodo AddBase restituisce un oggetto CodeElement anziché CodeType per consentire l'utilizzo di codice Visual C++. La proprietà Kind dell'oggetto restituito è vsCMElementVCBase per l'implementazione di Visual C++.

Nota

I valori degli elementi del modello di codice, quali classi, strutture, funzioni, attributi, delegati e così via, possono non essere deterministici dopo alcuni tipi di modifiche. Ciò significa che non si può fare affidamento sulla stabilità di tali valori.Per ulteriori informazioni, vedere la sezione Possibile modifica dei valori degli elementi del modello di codice in Individuazione di codice mediante il modello di codice (Visual Basic).

Esempi

[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

[C#]

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;
}

Sicurezza di .NET Framework

Vedere anche

Riferimenti

CodeClass2 Interfaccia

Spazio dei nomi EnvDTE80

Altre risorse

Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione

Individuazione di codice mediante il modello di codice (Visual Basic)

Individuazione di codice mediante il modello di codice (Visual C#)