Aracılığıyla paylaş


FileCodeModel2.AddStruct Yöntem (String, Object, Object, Object, vsCMAccess)

Yeni bir yapı kod yapısı oluşturur ve doğru konumda kodu ekler.

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

  • Position
    Tür: System.Object
    İsteğe Bağlı.Varsayılan = 0.Kod öğesi sonra yeni öğe eklemek.Değer ise, bir CodeElement, sonra yeni öðe eklenir it. hemen sonra
    Değeri uzun veri türü, daha sonra ise AddStruct gösterir öğesi sonra ekleme yeni bir öğe.
    Koleksiyonları kendi sayısı 1 başladığı için 0 geçirerek yeni öğe koleksiyonu başında yerleştirilmesi gerektiğini belirtir.Değeri-1 öğesinin sonuna yerleştirilmelidir.
  • Bases
    Tür: System.Object
    Gerekli.Varsayılan değer Nothing'dur.SafeArray tam tür adı taşıyan bir variant veya CodeInterface nesneleri, yeni arabirim türer.
  • ImplementedInterfaces
    Tür: System.Object
    Gerekli.Varsayılan değer Nothing'dur.Tam tür adlarının bir SafeArray veya CodeInterface nesneleri, her temsil eden arabirimleri, yeni sınıfın taahhüt gerçekleştir.

Dönüş Değeri

Tür: EnvDTE.CodeStruct
CodeStruct nesnesi

Yüklenen

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

Açıklamalar

Visual C++iki nokta üst üste ayrılmış gerektirir (::) için onun tam tür adları biçimlendirin. Diğer tüm diller noktalarla ayrılmış biçimi desteklemiyor.

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

Örnekler

Sub AddStructExample2(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.
        projItem.FileCodeModel.AddStruct("TestStruct", , 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 AddStructExample2(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.
        projItem.FileCodeModel.AddStruct("TestStruct", -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

FileCodeModel2 Arabirim

AddStruct Fazla Yük

EnvDTE80 Ad Alanı

Diğer Kaynaklar

Nasıl Yapılır: derlemek ve otomasyon nesne modeli kod örnekleri çalıştırma