Metodo CodeModel.AddFunction
Crea un nuovo costrutto di codice della funzione e inserisce il codice nella posizione corretta.
Spazio dei nomi: EnvDTE
Assembly: EnvDTE (in EnvDTE.dll)
Sintassi
'Dichiarazione
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
Parametri
- Name
Tipo: System.String
obbligatorio.Il nome della nuova funzione.
- Location
Tipo: System.Object
obbligatorio.Il percorso e nome file per la definizione della nuova funzione.A seconda del linguaggio, il nome file può essere relativo o assoluto rispetto al file di progetto.Il file verrà aggiunto al progetto se non è già un elemento di progetto.Se il file non può essere creato e aggiungerlo al progetto, quindi AddFunction ha esito negativo.
- Kind
Tipo: EnvDTE.vsCMFunction
obbligatorio.vsCMFunction costante che indica il tipo di funzione, come se la funzione è una funzione di accesso get di proprietà o un metodo.
- Type
Tipo: System.Object
obbligatorio.In vsCMTypeRef costante che indica il tipo di dati restituito dalla funzione.Ciò può essere un oggetto CodeTypeRef oggetto, vsCMTypeRef costante, o un nome di tipo completo.
- Position
Tipo: System.Object
facoltativo.Valore predefinito = 0.Elemento di codice dopo il quale deve essere aggiunto il nuovo elemento.Se il valore corrisponde a CodeElement, quindi il nuovo elemento verrà aggiunto immediatamente dopo.
Se il valore è di tipo long, quindi AddFunction indica l'elemento dopo il quale deve essere aggiunto il nuovo elemento.
Poiché nelle raccolte il conteggio inizia da 1, un valore 0 indica che il nuovo elemento deve essere inserito all'inizio della raccolta.Il valore -1 indica che l'elemento deve essere inserito alla fine.
- Access
Tipo: EnvDTE.vsCMAccess
facoltativo.In vsCMAccess costante.
Valore restituito
Tipo: EnvDTE.CodeFunction
In CodeFunction oggetto.
Note
Il codice riportato di seguito viene aggiunto un operatore di overload tramite 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
In questo caso, è necessario specificare in modo esplicito il nome della funzione che si desidera eseguire l'overload di (in questo caso, “someFunction„) nella chiamata a AddFunction, non appena l'operatore stesso dell'overload.
Mediante il codice precedente come esempio, cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) non viene eseguito.È invece necessario utilizzare cc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)
Solo risorse di Visual C++ AddFunction, in quanto c#, Visual Basic e J# non consentono le funzioni di primo livello.
L'oggetto nativo di Visual C++ nativo richiede (::) il formato due punti per i nomi di tipo completi.
[!NOTA]
I valori degli elementi del modello di codice come classi, strutture, le funzioni, gli attributi, delegati, e così via possono non essere deterministici dopo l'inserimento di determinati tipi di modifiche, pertanto i relativi valori non possono essere basati su per rimanere sempre gli stessi.Per ulteriori informazioni, vedere i valori degli elementi del modello di codice della sezione può cambiare in Individuazione di codice mediante il modello di codice (Visual Basic).
Esempi
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);
}
}
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Altre risorse
Procedura: compilare ed eseguire gli esempi di codice del modello a oggetti di automazione
Individuazione di codice mediante il modello di codice (Visual Basic)
Individuazione di codice mediante il modello di codice (Visual C#)