Sdílet prostřednictvím


CodeModel2.AddStruct – metoda (String, Object, Object, Object, Object, vsCMAccess)

Vytvoří nový kód Konstrukt struktury a vloží kód do správného umístění.

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

Syntaxe

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

Parametry

  • Location
    Typ: System.Object
    Povinné.Cesta a název nové definice struktury.V závislosti na jazyku název souboru je relativní nebo absolutní souboru projektu.Soubor je přidán do projektu Pokud již není položka projektu.Pokud nelze soubor vytvořen a přidán do projektu, pak AddStruct se nezdaří.
  • Position
    Typ: System.Object
    Nepovinné.Výchozí nastavení = 0.Prvek kódu, po které chcete přidat nový prvek.Pokud je hodnota CodeElement, pak je přidán nový prvek ihned po jeho
    Jestliže hodnota bude typ dat Long AddStruct 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 je umístit na konci.
  • Bases
    Typ: System.Object
    Povinné.Výchozí hodnota je Nothing.Varianty, která obsahuje pole SafeArray typu plně kvalifikované názvy nebo CodeInterface objektů ze odvozuje nové rozhraní.
  • ImplementedInterfaces
    Typ: System.Object
    Povinné.Výchozí hodnota je Nothing.Do pole SafeArray typu plně kvalifikované názvy nebo CodeInterfaces představuje rozhraní, která slibuje nové třídy implementace.

Vrácená hodnota

Typ: EnvDTE.CodeStruct
A CodeStruct objektu.

Implementuje

CodeModel.AddStruct(String, Object, Object, Object, Object, vsCMAccess)

Poznámky

Nativní Visual C++ vyžaduje oddělené dvojtečkou (::) formát pro jeho typ plně kvalifikované názvy. Všechny jazyky podporují formát oddělených tečkami.

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

Poznámka

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 Discovering Code by Using the Code Model (Visual Basic).

Příklady

Sub AddStructExample(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 struct.
        cm.AddStruct("TestStruct", 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 AddStructExample(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 struct.
        cm.AddStruct("TestStruct", 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é

Odkaz

CodeModel2 Rozhraní

AddStruct – přetížení

EnvDTE80 – obor názvů

Další zdroje

How to: Compile and Run the Automation Object Model Code Examples

Discovering Code by Using the Code Model (Visual Basic)

Discovering Code by Using the Code Model (Visual C#)