Compartir a través de


FileCodeModel2.AddClass (Método)

Crea una nueva construcción de código de clase e inserta el código en la ubicación adecuada.

Espacio de nombres:  EnvDTE80
Ensamblado:  EnvDTE80 (en EnvDTE80.dll)

Sintaxis

'Declaración
Function AddClass ( _
    Name As String, _
    Position As Object, _
    Bases As Object, _
    ImplementedInterfaces As Object, _
    Access As vsCMAccess _
) As CodeClass
CodeClass AddClass(
    string Name,
    Object Position,
    Object Bases,
    Object ImplementedInterfaces,
    vsCMAccess Access
)
CodeClass^ AddClass(
    String^ Name, 
    Object^ Position, 
    Object^ Bases, 
    Object^ ImplementedInterfaces, 
    vsCMAccess Access
)
abstract AddClass : 
        Name:string * 
        Position:Object * 
        Bases:Object * 
        ImplementedInterfaces:Object * 
        Access:vsCMAccess -> CodeClass
function AddClass(
    Name : String, 
    Position : Object, 
    Bases : Object, 
    ImplementedInterfaces : Object, 
    Access : vsCMAccess
) : CodeClass

Parámetros

  • Name
    Tipo: String

    Obligatorio. Nombre de la clase.

  • Position
    Tipo: Object

    Opcional. Valor predeterminado = 0. Elemento de código tras el que se agrega el elemento nuevo. Si el valor es un CodeElement, el nuevo elemento se agregará inmediatamente tras él.

    Si el tipo de datos del valor es Long, AddClass indicará el elemento detrás del cual se ha de agregar el nuevo elemento.

    Como el recuento de los elementos de una colección comienza a partir de 1, pasar un valor de 0 indica que el nuevo elemento deberá colocarse al principio de la colección. Un valor de -1 indica que el elemento deberá situarse al final de la colección.

  • Bases
    Tipo: Object

    Opcional. Valor predeterminado = 0. SafeArray de nombres de tipo completos u objetos CodeClass de los que la nueva clase hereda sus implementaciones.

  • ImplementedInterfaces
    Tipo: Object

    Opcional. Valor predeterminado = 0. Matriz SafeArray de nombres de tipo completos u objetos CodeInterface, cada uno de los cuales representa una interfaz que la nueva clase va a implementar.

  • Access
    Tipo: vsCMAccess

    Opcional. Constante vsCMAccess.

Valor devuelto

Tipo: CodeClass
Un objeto CodeClass.

Comentarios

La corrección de los argumentos vendrá determinada por el lenguaje que subyace al modelo de código.

Ejemplos

Sub AddClassExample2(ByVal dte As DTE2)

    ' Before running this example, open a code document from a project.
    Try
        Dim projItem As ProjectItem = dte.ActiveDocument.ProjectItem
        Dim cm As CodeModel = projItem.ContainingProject.CodeModel

        ' Initialize the base classes array and the implemented 
        ' interfaces array.
        Dim bases() As Object = {ConvertFullName(cm, "System.Object")}
        Dim interfaces() As Object = { _
            ConvertFullName(cm, "System.IDisposable"), _
            ConvertFullName(cm, "System.IComparable") _
        }

        ' Create a new class.
        projItem.FileCodeModel.AddClass("TestClass", , bases, _
            interfaces)
    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 AddClassExample2(DTE2 dte)
{
    // Before running this example, open a code document from 
    // a project.
    try
    {
        ProjectItem projItem = dte.ActiveDocument.ProjectItem;
        CodeModel cm = projItem.ContainingProject.CodeModel;

        // Initialize the base classes array and the implemented 
        // interfaces array.
        object[] bases = {ConvertFullName(cm, "System.Object")};
        object[] interfaces = {
            ConvertFullName(cm, "System.IDisposable"),
            ConvertFullName(cm, "System.IComparable")
        };

        // Create a new class.
        projItem.FileCodeModel.AddClass("TestClass", -1, bases, 
            interfaces, vsCMAccess.vsCMAccessPublic);
    }
    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;
}

Seguridad de .NET Framework

Vea también

Referencia

FileCodeModel2 Interfaz

EnvDTE80 (Espacio de nombres)

Otros recursos

Cómo: Compilar y ejecutar los ejemplos de código del modelo de objetos de automatización