Aracılığıyla paylaş


CodeClass2.AddStruct Yöntem

Sınıfta yeni bir yapı oluşturur.

Ad alanı:  EnvDTE80
Derleme:  EnvDTE80 (EnvDTE80.dll içinde)

Sözdizimi

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

Parametreler

  • Name
    Tür: String

    Gerekli.Yeni yapısı adı.

  • Position
    Tür: Object

    İsteğe bağlı.Varsayılan = 0.Sonra yeni öğe eklemek kod öğesi.

    Değer bir Long veri türü ise daha sonra Position sonra yeni öğe eklemek öğe yöntemi gösterir.

    0 geçirerek koleksiyonları kendi sayısı 1'den başladığı için yeni öğe koleksiyonu başında yerleştirilmesi gerektiğini gösterir.Değeri-1 öğe sonunda yerleştirilmelidir.

  • Bases
    Tür: Object

    Gerekli.Varsayılan değer Nothing.SafeArray, tam nitelikli tür adları içeren bir değişken veya CodeInterface nesneleri, yeni yapının türetilir.

  • ImplementedInterfaces
    Tür: Object

    Gerekli.Varsayılan değer Nothing.SafeArray, tam nitelikli tür adları veya CodeInterface uygulamak için yeni bir sınıf iyiyse arabirimleri temsil eden nesneler.

  • Access
    Tür: vsCMAccess

    İsteğe bağlı.A vsCMAccess sabit.

Dönüş Değeri

Tür: CodeStruct
CodeStruct nesnesi

Notlar

Yerel Visual C++, tam nitelikli tür adları için ayrılmış iki nokta üst üste (:) biçimi gerektirir.Tüm diğer dillere dönemi ayrılmış biçimi destekler.

Bağımsız değişkenler doğruluğunu arkasındaki kod modeli dili tarafından belirlenir.

[!NOT]

Kod modeli öğe sınıfları, yapılar, İşlevler, öznitelikleri, temsilciler ve diğerleri gibi düzenlemeler değerlerine bağlı her zaman aynı kalmasına dayanıyordu olamaz, başka bir deyişle, belirli türdeki yaptıktan sonra kararlı olmayan olabilir.Daha fazla bilgi için kod modeli öğesi değerleri değiştirebilir bölümüne bakın Kod Modeli Kullanarak Kodu Keşfetme (Visual Basic).

Örnekler

[Visual Basic]

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

[C#]

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

.NET Framework Güvenliği

Ayrıca bkz.

Başvuru

CodeClass2 Arabirim

EnvDTE80 Ad Alanı

Diğer Kaynaklar

Nasıl yapılır: Otomasyon Nesne Modeli Kod Örnekleri Derleme ve Çalıştırma

Kod Modeli Kullanarak Kodu Keşfetme (Visual Basic)

Kod Modeli Kullanarak Kodu Keşfetme (Visual C#)