Udostępnij za pośrednictwem


Metoda CodeModel.AddFunction —

Tworzy nowe konstrukcje kodu funkcji i wstawia kod odpowiedniej lokalizacji.

Przestrzeń nazw:  EnvDTE
Zestaw:  EnvDTE (w EnvDTE.dll)

Składnia

'Deklaracja
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

Parametry

  • Name
    Typ: String

    Wymagane.Nazwa nowej funkcji.

  • Location
    Typ: Object

    Wymagane.Ścieżka i nazwa nowej definicji funkcji.W zależności od języka nazwa pliku jest względną lub bezwzględną do pliku projektu.Plik zostanie dodany do projektu, jeśli nie jest już elementu projektu.Jeśli plik nie mogą być utworzone i dodane do projektu, następnie AddFunction nie powiedzie się.

  • Kind
    Typ: EnvDTE.vsCMFunction

    Wymagane.vsCMFunction Stałą, wskazujące na rodzaj funkcji, takich jak na to, czy funkcja jest get właściwości lub metody.

  • Type
    Typ: Object

    Wymagane.A vsCMTypeRef stałą wskazującą typ danych, zwracana przez funkcję.Może to być CodeTypeRef obiektu, vsCMTypeRef stała lub w pełni kwalifikowana nazwa typu.

  • Position
    Typ: Object

    Opcjonalne.Domyślnie = 0.Element kodu, po którym ma być dodany nowy element.Jeśli wartość jest CodeElement, a następnie dodaje się nowy element natychmiast po.

    Jeśli wartość jest typu danych Long AddFunction wskazuje element, po którym ma być dodany nowy element.

    Ponieważ zbiory rozpocząć ich licznik na 1, przekazując 0 wskazuje, że nowy element powinien być umieszczony na początku kolekcji.Wartość-1 oznacza, że element powinny być umieszczane na końcu.

Wartość zwracana

Typ: EnvDTE.CodeFunction
A CodeFunction object.

Uwagi

Poniższy kod dodaje operator przeciążenie za pomocą 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

W takim przypadku należy jawnie określić nazwę przeciążenie (w tym przypadku "someFunction") w wywołaniu funkcji AddFunction, nie tylko operator przeciążenie.

Na przykład przy użyciu powyższego kodu cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) nie działa.Zamiast nich należy używaćcc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)

Tylko Visual C++ implementuje AddFunction, ponieważ C#, Visual Basic i J# nie pozwalają funkcji najwyższego poziomu.

Macierzysty macierzystym Visual C++ wymaga oddzielone dwukropkiem (::) format dla jego typu w pełni kwalifikowanej nazwy.

[!UWAGA]

Po dokonaniu niektórych rodzajów modyfikacji, co oznacza, że ich wartości nie może polegać na zawsze pozostawać taki sam może być nie deterministyczny wartości elementów modelu kodu, takich jak klasy, strukturach, funkcje, atrybuty, delegatów i tak dalej.Aby uzyskać więcej informacji, zobacz sekcję wartości elementu modelu kod można zmienić w Odnajdowanie kodu za pomocą modelu kodu (Visual Basic).

Przykłady

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);
    }
}

Zabezpieczenia programu .NET Framework

Zobacz też

Informacje

CodeModel Interfejs

Przestrzeń nazw EnvDTE

Inne zasoby

Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady

Odnajdowanie kodu za pomocą modelu kodu (Visual Basic)

Odnajdowanie kodu za pomocą modelu kodu (Visual C#)