CodeModel.AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria uma nova construção de código de função e insere o código no local correto.
EnvDTE::CodeFunction AddFunction(std::wstring const & Name, winrt::Windows::Foundation::IInspectable const & Location, EnvDTE::vsCMFunction Kind, winrt::Windows::Foundation::IInspectable const & Type, winrt::Windows::Foundation::IInspectable const & Position, EnvDTE::vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[System.Runtime.InteropServices.DispId(9)]
public EnvDTE.CodeFunction AddFunction (string Name, object Location, EnvDTE.vsCMFunction Kind, object Type, object Position, EnvDTE.vsCMAccess Access = EnvDTE.vsCMAccess.vsCMAccessDefault);
[<System.Runtime.InteropServices.DispId(9)>]
abstract member AddFunction : string * obj * EnvDTE.vsCMFunction * obj * obj * EnvDTE.vsCMAccess -> EnvDTE.CodeFunction
Public Function AddFunction (Name As String, Location As Object, Kind As vsCMFunction, Type As Object, Optional Position As Object, Optional Access As vsCMAccess = EnvDTE.vsCMAccess.vsCMAccessDefault) As CodeFunction
Parâmetros
- Name
- String
Obrigatórios. O nome da nova função.
- Location
- Object
Obrigatórios. O caminho e o nome do arquivo para a nova definição de função. Dependendo do idioma, o nome do arquivo é relativo ou absoluto ao arquivo do projeto. O arquivo será adicionado ao projeto se ele ainda não for um item de projeto. Se o arquivo não puder ser criado e adicionado ao projeto, o AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess) falhará.
- Kind
- vsCMFunction
Obrigatórios. A vsCMFunction constante que indica o tipo de função, como se a função é uma propriedade-get ou um método.
- Type
- Object
Obrigatórios. Uma vsCMTypeRef constante que indica o tipo de dados que a função retorna. Pode ser um CodeTypeRef objeto, uma vsCMTypeRef constante ou um nome de tipo totalmente qualificado.
- Position
- Object
Opcional. Padrão = 0. O elemento de código depois do qual adicionar o novo elemento. Se o valor for a CodeElement , o novo elemento será adicionado imediatamente após ele.
Se o valor for um tipo de dados longo, AddFunction(String, Object, vsCMFunction, Object, Object, vsCMAccess) indicará o elemento depois do qual adicionar o novo elemento.
Como as coleções começam sua contagem em 1, passar 0 indica que o novo elemento deve ser colocado no início da coleção. Um valor de-1 significa que o elemento deve ser posicionado no final.
- Access
- vsCMAccess
Opcional. Uma constante vsCMAccess.
Retornos
Um objeto CodeFunction.
- Atributos
Exemplos
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);
}
}
Comentários
O código a seguir adiciona um operador de sobrecarga usando 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
Nessa instância, você deve especificar explicitamente o nome da função que deseja sobrecarregar (nesse caso, "someFunction") na chamada para AddFunction , não apenas o operador de sobrecarga em si.
O uso do código acima como exemplo não cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...) funciona. Em vez disso, você deve usar cc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)
Somente Visual C++ implementa AddFunction , porque C#, Visual Basic e J# não permitem funções de nível superior.
Visual C++ nativa nativo requer os dois-pontos separados por vírgula (::) formato para seus nomes de tipo totalmente qualificados.
Observação
Os valores dos elementos de modelo de código, como classes, structs, funções, atributos, delegados e assim por diante, podem ser não determinísticos depois de fazer determinados tipos de edições, o que significa que seus valores não podem ser dependentes para sempre permanecerem os mesmos. Para obter mais informações, consulte os valores de elemento de modelo de código de seção podem ser alterados na descoberta de código usando o modelo de código (Visual Basic).