Aracılığıyla paylaş


CodeModel.AddFunction Yöntem

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

Ad alanı:  EnvDTE
Derleme:  EnvDTE (EnvDTE.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 öğesinin sonuna yerleştirilmelidir-1.

Dönüş Değeri

Tür: EnvDTE.CodeFunction
CodeFunction nesnesi

Açıklamalar

Aşağıdaki kodu kullanarak aşırı işleç ekler vsCMFunction.vsCMFunctionOperator.

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 örnekte, açıkça çağrısında (Bu durumda, "someFunction") aþýrý yüklemek istediğiniz işlevin adını belirtmeniz gerekir AddFunction, aşırı operatör kendisini değil.

Örneğin, yukarıdaki kodu kullanarak cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) mu çalışmıyor. Bunun yerine kullanmalısınızcc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)

Yalnızca Visual c++ uygulayan AddFunction, çünkü C#, Visual Basic ve J# izin vermeyin üst düzey işlevler.

Yerel doğal Visual c++ gerektirir iki nokta üst üste ayrılmış (::) için onun tam tür adları biçimlendirin.

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

CodeModel Arabirim

EnvDTE 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