Método CodeModel2.AddFunction (String, Object, vsCMFunction, Object, Object, vsCMAccess)
Cria uma nova construção de código de função e insere o código no local correto.
Namespace: EnvDTE80
Assembly: EnvDTE80 (em EnvDTE80.dll)
Sintaxe
'Declaração
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
Parâmetros
- Name
Tipo: System.String
Obrigatório.O nome da nova função.
- Location
Tipo: System.Object
Obrigatório.O nome de arquivo e caminho para a nova definição de função.Dependendo do idioma, o nome do arquivo é relativo ou absoluto para o arquivo de projeto.O arquivo é adicionado ao projeto, se já não é um item de projeto.Se o arquivo não pode ser criado e adicionado ao projeto, em seguida, AddFunction falhar.
- Kind
Tipo: EnvDTE.vsCMFunction
Obrigatório.O vsCMFunction constante indicando o tipo de função, como, por exemplo, se a função é um property-get, um método e assim por diante.
- Type
Tipo: System.Object
Obrigatório.A vsCMTypeRef constante indicando o tipo de dados que a função retorna.Isso pode ser um CodeTypeRef o objeto, um vsCMTypeRef constante ou um nome de tipo totalmente qualificado.
- Position
Tipo: System.Object
Opcional.Padrão = 0.O elemento de código após o qual você deseja adicionar o novo elemento.Se o valor for um CodeElement, e em seguida, o novo elemento é adicionado imediatamente após ele.
Se o valor é um tipo de dados longos, em seguida, AddFunction indica o elemento após o qual você deseja adicionar o novo elemento.
Porque coleções começam sua contagem em 1, passando de 0 indica que o novo elemento deve ser colocado no início da coleção.O valor-1 significa que o elemento deve ser colocado no final.
- Access
Tipo: EnvDTE.vsCMAccess
Opcional.A vsCMAccess constante.
Valor de retorno
Tipo: EnvDTE.CodeFunction
A CodeFunction object.
Comentários
Você pode adicionar um operador de sobrecarga (usando vsCMFunctionOperator) como no exemplo a seguir.
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
Nesse caso, você deve especificar explicitamente o nome da função para sobrecarregar (no exemplo, "someFunction") na chamada para AddFunction, não apenas o operador de sobrecarga em si.Usar o código acima, por exemplo,
cc.AddFunction("+", vsCMFunction.vsCMFunctionOperator,...)
não funciona.Em vez disso, você deve usar
cc.AddFunction("someFunction +", vsCMFunction.vsCMFunctionFunction,...)
Somente Visual C++ implementa este método porque C#, Visual Basic, e j# não permitem que as funções de nível superior.
Nativo Visual C++ requer separados por dois-pontos (::) format para seus nomes de tipo totalmente qualificado.
Observação |
---|
Os valores de elementos de modelo de código, como classes, estruturas, 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 confie sempre permanecer o mesmo.Para obter mais informações, consulte a seção valores de elemento de modelo de código podem ser alterada de Descobrindo o código usando o modelo de código (Visual Basic). |
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);
}
}
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.
Consulte também
Referência
Outros recursos
Como: compilar e executar os exemplos de código de modelo de objeto de automação
Descobrindo o código usando o modelo de código (Visual Basic)