A página do MSDNByRef
e as ByVal
palavras-chave não são muito úteis; a menos que eu tenha pulado de alguma forma, eles estão simplesmente sendo referidos como "palavras-chave" em todos os lugares.
Um dos principais contribuidores do projeto Rubberduck está trabalhando em uma refatoração Encapsulate Field muito interessante , e a interface do usuário está indo muito bem .. exceto que eu tenho um problema com o rótulo acima da lista suspensa para ByRef
/ ByVal
, que diz "Acessibilidade":
Eu não gosto de "Acessibilidade" porque estou usando-o em outro lugar para Public
/ Private
/ Friend
access modifiers onde parece mais preciso.
Eu não quero usar o "Modificador" porque o IMO é apenas uma abreviação de "Modificador de acesso".
Gostaria que esse rótulo fosse preciso, mas aparentemente meu vocabulário está ausente e não sei como chamar essas palavras-chave.
O que esse rótulo deve dizer para ser preciso? Qual é a palavra que estou procurando? A que "família de palavras-chave" pertence ByRef
/ ByVal
pertence?
ByVal
sem a possibilidade de alterá-lo paraByRef
outro que não seja editar manualmente o código gerado e "problema resolvido"! O VBA pode compilar uma tremenda quantidade de besteiras ruins que você conhece :-) ainda assim, eu gosto que finalmente haja um lugar on-line que coloque um nome nessas palavras-chave.Respostas:
Nesse caso, eu usaria "Pass As" (ou "Pass").
Você tem um fluxo que combina perfeitamente com esse uso.
Isso se encaixa perfeitamente no seu fluxo de trabalho e é exatamente o que o artigo que você menciona indica.
À medida que você lê suas opções, ele lê perfeitamente ao usar 'Passar', pois você pode simplesmente ler o cabeçalho e selecionar o texto adequadamente - "'Nome da variável' foo, valor de 'Passar como'".
Se você quiser ler um pouco melhor, poderá fazer as opções da lista "Valor" e "Referência", dependendo de seu público-alvo serem programadores VBA ou não-VBA, que podem estar um pouco menos familiarizados com as palavras-chave ByVal e ByRef.
Ou, alternativamente, altere-o para "Pass:" e faça com "By Reference (ByRef)" e "By Value (ByVal)" no menu suspenso. Parece que seu menu suspenso tem espaço para mostrar todo esse texto. Ou apenas as palavras-chave ByRef / ByVal.
fonte
Eu usaria um desses três termos para rotular uma lista suspensa selecionando:
fonte
"Pass By Semantics" é provavelmente o mais próximo do que você está procurando.
fonte
O termo mais exato e formal para isso seria "Semântica de aliasing".
Quando
ByRef
é usado, o nome dentro da função é um alias para a variável do chamador - todas as alterações em uma delas são imediatamente visíveis à outra. ComByVal
, o nome dentro da função é uma cópia distinta da variável do chamador (é claro, a cópia do chamador e da função pode se referir ao mesmo objeto, mas elas são distintas no fato de que a reatribuição do parâmetro dentro da função não reatribuir a variável do chamador )As opções seriam
ByRef
)ByVal
)Algumas plataformas adicionam uma terceira possibilidade, na qual o alias da variável do chamador é feito, mas não é permitido que mais de um parâmetro aliasse objetos sobrepostos. (A ideia por trás da
restrict
palavra-chave C , também é encontrada no IDL, onde está a palavra-chave do atributounique
). O .NET não tem uma boa maneira de codificar esse conhecimento.fonte
Eu chamaria isso de "categoria [argumento]".
O argumento tem um nome, um tipo e uma categoria.
fonte