Sdílet prostřednictvím


CodeModel2.AddClass – metoda

Vytvoří nové konstrukce kódu třídy a vloží kód do správného umístění.

Obor názvů:  EnvDTE80
Sestavení:  EnvDTE80 (v EnvDTE80.dll)

Syntaxe

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

Parametry

  • Name
    Typ: String

    Povinné.Název třídy.

  • Location
    Typ: Object

    Povinné.Cesta a název pro novou definici třídy.V závislosti na jazyku název souboru je relativní nebo absolutní souboru projektu.Soubor je do projektu přidány, pokud již není položka projektu.Pokud nelze soubor vytvořen a přidán do projektu, pak AddClass se nezdaří.

  • Position
    Typ: Object

    Nepovinné.Výchozí nastavení = 0.Prvek kódu, po které chcete přidat nový prvek.Pokud je hodnota CodeElement, potom ihned po je přidán nový prvek.

    Pokud je hodnota typu Long pak AddClass určuje prvek, po které chcete přidat nový prvek.

    Protože kolekce zahájit jejich počet na 1, procházející 0 udává, že nový prvek by měl na začátku kolekce.Hodnota-1 znamená prvek umístit na konci.

  • Bases
    Typ: Object

    Povinné.Výchozí nastavení = 0.Pole SafeArray typu plně kvalifikované názvy nebo CodeClass objekty, ze kterých nová třída dědí jeho implementace.

  • ImplementedInterfaces
    Typ: Object

    Povinné.Výchozí nastavení = 0.Pole SafeArray typu plně kvalifikované názvy nebo CodeInterface objekty, každá představuje novou třídu slibuje implementovat rozhraní.

  • Access
    Typ: vsCMAccess

    Nepovinné.A vsCMAccess konstantní.

Vrácená hodnota

Typ: CodeClass
Objekt CodeClass.

Poznámky

Správnosti argumentů je určen jazyk za kód modelu.

[!POZNÁMKA]

Není deterministický může být po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále.Další informace naleznete v části Změna hodnoty prvku modelu kódu Zjišťování kódu pomocí modelu kódu (Visual Basic).

Příklady

Sub AddClassExample(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.
        cm.AddClass("TestClass", projItem.Name, , 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 AddClassExample(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.
        cm.AddClass("TestClass", projItem.Name, -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;
}

Zabezpečení rozhraní .NET Framework

Viz také

Referenční dokumentace

CodeModel2 Rozhraní

EnvDTE80 – obor názvů

Další zdroje

Postupy: Kompilace a spuštění příkladů kódu objektu automatizace

Zjišťování kódu pomocí modelu kódu (Visual Basic)

Zjišťování kódu pomocí modelu kódu (Visual C#)