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: StringWymagane.Nazwa nowej funkcji.
Location
Typ: ObjectWymagane.Ś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.vsCMFunctionWymagane.vsCMFunction Stałą, wskazujące na rodzaj funkcji, takich jak na to, czy funkcja jest get właściwości lub metody.
Type
Typ: ObjectWymagane.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: ObjectOpcjonalne.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.
Access
Typ: EnvDTE.vsCMAccessOpcjonalne.A vsCMAccess stałą.
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
- Pełne zaufanie do bezpośredniego wywołującego. Tego elementu członkowskiego nie można używać w kodzie częściowo zaufanym. Aby uzyskać więcej informacji, zobacz Używanie bibliotek pochodzących z częściowo zaufanego kodu.
Zobacz też
Informacje
Inne zasoby
Porady: kompilowanie i uruchamianie kodu modelu obiektów automatyzacji — przykłady