مشاركة عبر


FileCodeModel.AddStruct أسلوب

يقوم بإنشاء جديد إنشاء بنية تعليمات برمجية وقم بإدراج التعليمة البرمجية في الموقع الصحيح.

مساحة الاسم:  EnvDTE
التجميع:  EnvDTE (في EnvDTE.dll)

بناء الجملة

'إقرار
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

المعلمات

  • Name
    النوع: System.String
    مطلوبة.اسم بنية جديدة.
  • Position
    النوع: System.Object
    اختياري.الافتراضي = 0.عنصر تعليمات برمجية بعدها إلى إضافة العنصر الجديد.إذا كانت القيمة هو CodeElement، العنصر الجديد ثم هو إضافتها مباشرة بعد it.
    إذا كانت القيمة هو نوع بيانات طويلة، ثم AddStructيشير إلى العنصر بعدها لإضافة عنصر جديد.
    يشير لأنه يبدأ مجموعة s بها عدد من 1، تمرير 0 إلى أنه يجب وضع العنصر الجديد في البداية مجموعة.-1 تعني القيمة عنصر يجب أن توضع في النهاية.
  • Bases
    النوع: System.Object
    مطلوبة.الافتراضي value هوNothing.متغير يحتوي SafeArray من أسماء نوع المؤهل بالكامل "أو" CodeInterfaceالكائنات من مشتقة واجهة جديدة.
  • ImplementedInterfaces
    النوع: System.Object
    مطلوبة.الافتراضي value هوNothing.SafeArray أسماء نوع المؤهل بالكامل "أو" CodeInterfaceعلى الكائنات، يمثل كل واجهات promises الفئة الجديدة إلى. تنفيذ

القيمة المُرجعة

النوع: EnvDTE.CodeStruct
كائن CodeStruct .

ملاحظات

يتطلب Visual C + + النقطتين مفصولة (: تنسيق:) لأسماء نوع المؤهل بالكامل الخاص به. الجميع اللغات الأخرى دعم تنسيق مفصولة بنقطة.

صحة الوسيطات هو يفرضها اللغة خلف طراز تعليمات برمجية.

أمثلة

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.

راجع أيضًَا

المرجع

FileCodeModel واجهة

FileCodeModel الأعضاء

EnvDTE مساحة الاسم

موارد أخرى

كيفية: الترجمة وإعادة تشغيل أمثلة التعليمات البرمجية لطراز كائن التنفيذ التلقائي