Aracılığıyla paylaş


CodeModel2.AddFunction Yöntem (String, Object, vsCMFunction, Object, Object, vsCMAccess)

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

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

Sözdizimi

'Bildirim
Function AddFunction ( _
    Name As String, _
    Location As Object, _
    Kind As vsCMFunction, _
    Type As Object, _
    Position As Object, _
    Access As vsCMAccess _
) As CodeFunction
CodeFunction AddFunction(
    string Name,
    Object Location,
    vsCMFunction Kind,
    Object Type,
    Object Position,
    vsCMAccess Access
)
CodeFunction^ AddFunction(
    String^ Name, 
    Object^ Location, 
    vsCMFunction Kind, 
    Object^ Type, 
    Object^ Position, 
    vsCMAccess Access
)
abstract AddFunction : 
        Name:string * 
        Location:Object * 
        Kind:vsCMFunction * 
        Type:Object * 
        Position:Object * 
        Access:vsCMAccess -> CodeFunction 
function AddFunction(
    Name : String, 
    Location : Object, 
    Kind : vsCMFunction, 
    Type : Object, 
    Position : Object, 
    Access : vsCMAccess
) : CodeFunction

Parametreler

  • Location
    Tür: System.Object
    Gerekli.Yeni işlev tanımı için yol ve dosya adı.Bağlı olarak, dosya adı proje dosyasına göreceli ya da mutlak dilidir.Zaten proje öğesi değilse dosya projeye eklenir.Dosyayı açamıyor oluşturulabilir ve projeye, daha sonra eklenen, AddFunction başarısız.
  • 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 AddFunction 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.

Dönüş Değeri

Tür: EnvDTE.CodeFunction
CodeFunction nesnesi

Yüklenen

CodeModel.AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess)

Açıklamalar

Aşırı işleci ekleyebilirsiniz (kullanarak vsCMFunctionOperator) gibi aşağıdaki örnek.

Sub testAddOverloadOperatorCPP()

Dim fcm As FileCodeModel = _

DTE.ActiveDocument.ProjectItem.FileCodeModel

Dim cc As CodeClass = fcm.CodeElements.Item("someClassName")

cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator, _

vsCMTypeRef.vsCMTypeRefInt)

'cc.AddFunction("someFunction +", _

vsCMFunction.vsCMFunctionFunction, vsCMTypeRef.vsCMTypeRefInt)

End Sub

Bu durumda, açıkça çağrısında (Bu örnekte "someFunction") aþýrý yüklemek istediğiniz işlevin adını belirtmeniz gerekir AddFunction, aşırı operatör kendisini değil. Yukarıdaki kod, örnek olarak kullanarak,

cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...)

işe yaramaz. Bunun yerine kullanmalısınız

cc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)

Sadece Visual C++ çünkü bu yöntemi uygulayan C# Visual Basic, ve J# izin vermez üst düzey işlevleri.

Yerel Visual C++ iki nokta üst üste ayrılmış gerektirir (::) biçimlendirmek, tam tür adı.

Not

Sınıflar, yapılar, işlevleri, öznitelikleri, Temsilciler ve benzeri gibi kod modeli öğeleri değerlerini düzenlemeleri değerlerine bağlı her zaman aynı kalmasını dayanıyordu olamaz, diğer bir deyişle, belirli türde yaptıktan sonra non-deterministik olabilir. Daha fazla bilgi için bkz: kod modeli öğe değerlerini de değiştirebilirsiniz bölüm Kod modeli (@) kullanarak kodu keşfetme.

Örnekler

Sub AddFunctionExample(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

        ' Create a new function.
        cm.AddFunction("TestFunction", projItem.Name, _
            vsCMFunction.vsCMFunctionFunction, _
            vsCMTypeRef.vsCMTypeRefInt)
    Catch ex As Exception
        MsgBox(ex.Message)
    End Try

End Sub
public void AddFunctionExample(DTE2 dte)
{
    // Before running this example, open a code document from 
    // a project.
    try
    {
        ProjectItem projItem = dte.ActiveDocument.ProjectItem;
        CodeModel cm = projItem.ContainingProject.CodeModel;

        // Create a new function.
        cm.AddFunction("TestFunction", projItem.Name, _
            vsCMFunction.vsCMFunctionFunction, _
            vsCMTypeRef.vsCMTypeRefInt, -1, _
            vsCMAccess.vsCMAccessDefault);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

.NET Framework Güvenliği

Ayrıca bkz.

Başvuru

CodeModel2 Arabirim

AddFunction Fazla Yük

EnvDTE80 Ad Alanı

Diğer Kaynaklar

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

Kod modeli (@) kullanarak kodu keşfetme

Kod modeli (Visual C#) kullanarak kodu keşfetme