Freigeben über


CodeClass2.AddFunction-Methode

Erstellt eine neue Funktion in der Klasse.

Namespace:  EnvDTE80
Assembly:  EnvDTE80 (in EnvDTE80.dll)

Syntax

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

Parameter

  • Name
    Typ: String

    Erforderlich. Der Name der neuen Funktion.

  • Kind
    Typ: vsCMFunction

    Erforderlich. Die vsCMFunction-Konstante, die den Typ der Funktion angibt, z. B. ob die Funktion eine Eigenschaft abruft, eine Methode darstellt usw.

  • Type
    Typ: Object

    Erforderlich. Eine vsCMTypeRef-Konstante, die den von der Funktion zurückgegebenen Datentyp angibt. Dies kann ein CodeTypeRef-Objekt, eine vsCMTypeRef-Konstante oder ein vollqualifizierter Typname sein.

  • Position
    Typ: Object

    Optional. Standardwert = 0. Das Codeelement, hinter dem die neue Funktion hinzugefügt werden soll.

    Wenn der Wert ein Long-Datentyp ist, gibt Position das Element an, nach dem das neue Element hinzugefügt werden soll.

    Da die Zählung bei Auflistungen mit 1 beginnt, wird mit dem Wert 0 angegeben, dass das neue Element am Anfang der Auflistung eingefügt werden soll. Bei dem Wert -1 wird die Funktion am Ende eingefügt.

  • Access
    Typ: vsCMAccess

    Optional. Eine vsCMAccess-Konstante.

  • Location
    Typ: Object

    Optional. Position der neuen Funktion.

Rückgabewert

Typ: CodeFunction
Ein CodeFunction-Objekt.

Hinweise

Im systemeigenen Visual C++ ist ein doppelter Doppelpunkt (::) als Trennzeichen für vollqualifizierte Typnamen erforderlich. Alle anderen Programmiersprachen unterstützen das durch Punkte getrennte Format.

Die Gültigkeit der Argumente wird durch die Sprache des Codemodells bestimmt.

Hinweis

Die Werte von Codemodellelementen wie Klassen, Strukturen, Funktionen, Attributen, Delegaten usw. können nach bestimmten Bearbeitungsvorgängen nicht deterministisch sein, d. h., dass nicht mehr davon ausgegangen werden kann, dass ihre Werte immer unverändert bleiben.Weitere Informationen finden Sie im Abschnitt zum Änderungsverhalten von Codemodellelementwerten unter Ermitteln von Code über das Codemodell (Visual Basic).

Beispiele

[Visual Basic]

Sub AddFunctionExample2(ByVal dte As DTE2)
    ' Before running this example, open a code document from a project
    ' and place the insertion point inside a class definition.
    Try
        ' Retrieve the CodeClass at the insertion point.
        Dim sel As TextSelection = _
            CType(dte.ActiveDocument.Selection, TextSelection)
        Dim cls As CodeClass = _
            CType(sel.ActivePoint.CodeElement( _
            vsCMElement.vsCMElementClass), CodeClass)

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

[C#]

public void AddFunctionExample2(DTE2 dte)
{
    // Before running this example, open a code document from a project
    // and place the insertion point inside a class definition.
    try
    {
        // Retrieve the CodeClass at the insertion point.
        TextSelection sel = 
            (TextSelection)dte.ActiveDocument.Selection;
        CodeClass cls = 
            (CodeClass)sel.ActivePoint.get_CodeElement(
            vsCMElement.vsCMElementClass);

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

.NET Framework-Sicherheit

Siehe auch

Referenz

CodeClass2 Schnittstelle

EnvDTE80-Namespace

Weitere Ressourcen

Gewusst wie: Kompilieren und Ausführen der Codebeispiele für das Automatisierungsobjektmodell

Ermitteln von Code über das Codemodell (Visual Basic)

Ermitteln von Code über das Codemodell (Visual C#)