Sdílet prostřednictvím


CodeModel.AddFunction – metoda

Vytvoří nové konstrukce kód funkce a kód vloží do správného umístění.

Obor názvů:  EnvDTE
Sestavení:  EnvDTE (v EnvDTE.dll)

Syntaxe

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

  • Location
    Typ: System.Object
    Povinné.Cesta a název definice nové funkce.V závislosti na jazyku název souboru je relativní nebo absolutní souboru projektu.Soubor je přidán do projektu Pokud již není položka projektu.Pokud nelze soubor vytvořen a přidán do projektu, pak AddFunction se nezdaří.
  • Position
    Typ: System.Object
    Nepovinné.Výchozí nastavení = 0.Prvek kódu, po které chcete přidat nový prvek.Pokud je hodnota CodeElement, pak je přidán nový prvek ihned po jeho
    Jestliže hodnota bude typ dat Long AddFunction určuje prvek, po které chcete přidat nový prvek.
    Protože kolekce zahájit jejich počet na 1, procházející 0 udává, že nový prvek by měl na začátku kolekce.Hodnota-1 znamená, že by měl být prvek umístěn na konci.

Vrácená hodnota

Typ: EnvDTE.CodeFunction
A CodeFunction objektu.

Poznámky

Následující kód přidává pomocí operátoru přetížení 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

V tomto případě je nutné explicitně zadat název chcete přetížit (v tomto případě "someFunction") ve volání funkce AddFunction, nejen sám provozovatel přetížením.

Výše uvedený kód například pomocí cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) nepracuje. Místo toho musíte použítcc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)

Implementuje pouze Visual C++ AddFunction, protože C#, Visual Basic a J# povolit funkce nejvyšší úrovně.

Nativní nativní Visual C++ vyžaduje oddělené dvojtečkou (::) formát pro jeho úplný zadejte jména.

Poznámka

Deterministický může být po provedení určité typy úprav, což znamená, že jejich hodnoty nelze dovolávat vždy zůstat stejné hodnoty prvků modelu kód jako třídy, struktury, funkce, atributy, delegátů a tak dále. Další informace naleznete v části Změna hodnoty prvku modelu kódu Discovering Code by Using the Code Model (Visual Basic).

Příklady

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

Zabezpečení rozhraní .NET Framework

Viz také

Odkaz

CodeModel Rozhraní

EnvDTE – obor názvů

Další zdroje

How to: Compile and Run the Automation Object Model Code Examples

Discovering Code by Using the Code Model (Visual Basic)

Discovering Code by Using the Code Model (Visual C#)