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ı.Diline bağlı olarak göreceli ya da mutlak proje dosyası için dosya adı.Zaten proje öğesi değilse dosya projeye eklenir.Dosyayı açamıyor oluşturulabilir ve projeye, daha sonra eklenen, AddFunction başarısız.
  • Kind
    Tür: EnvDTE.vsCMFunction
    Gerekli.vsCMFunction İşlevi bir özelliğin get ya da bir yöntem olup olmadığı gibi işlev türünü belirten bir sabit.
  • Position
    Tür: System.Object
    İsteğe Bağlı.Varsayılan = 0.Kod öğesi yeni öğe eklemek önce beklenecek.Değer ise, bir CodeElement, sonra da yeni öğe hemen bundan sonra eklenir.
    Değeri daha sonra bir Long veri türü ise AddFunction sonra yeni öğe Ekle öğesini belirtir.
    0 Geçirerek koleksiyonları kendi sayısı 1'den başladığı için yeni öğe koleksiyonu başında yerleştirilmesi gerektiğini gösterir.Bir değeri öğesinin sonuna yerleştirilmesi gereken-1 anlamına gelir.

Dönüş Değeri

Tür: EnvDTE.CodeFunction
CodeFunction nesnesi

Notlar

Aşağıdaki kod, aşırı işlecini kullanarak 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ğrısında (Bu durumda, "someFunction") aþýrý yüklemek istediğiniz işlevin adını açıkça belirtmelisiniz AddFunction, aşırı işleci kendisi değil.

Örnek olarak, yukarıdaki kodu kullanarak cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) çalışmıyor. Bunun yerine kullanmanız gerekircc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)

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

Yerel doğal Visual c++ gerektiren iki nokta üst üste ayrılmış (::), tam olarak nitelenmiş tür adları biçimlendirin.

Not

Kod modeli öğeler sınıflar, yapılar, İşlevler, öznitelikleri, Temsilciler ve diğerleri gibi değerleri düzenlemeleri değerlerine bağlı her zaman aynı kalacak şekilde dayanıyordu olamaz, diğer bir deyişle, belirli türde yaptıktan sonra non-deterministik olabilir.Daha fazla bilgi için kod modeli öğe değerlerini de değiştirebilirsiniz bölümüne bakın Kod modeli (Visual Basic) kullanarak kod 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 örneklerini çalıştırmak

Kod modeli (Visual Basic) kullanarak kod keşfetme

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