DataGridView: Passe por valor ou referência?
-
20-09-2019 - |
Pergunta
Penso no DataGridView como porcos da memória. É melhor passar pelo valor um DataGridView ou por referência? Deveria até ser passado?
Solução
Passá -lo por valor ou referência não será importante do ponto de vista da memória, porque o DataGridView é um tipo de referência, não um tipo de valor.
Outras dicas
O tipo DataGridView
é um tipo de referência e, portanto, não é possível passar no objeto por valor. Você pode passar o referência para o objeto por valor, mas esse é um valor muito pequeno (normalmente de tamanho ponteiro).
Para adicionar à resposta de Joseph, tudo o que a aprovou pelo valor é criar uma nova variável na pilha de chamadas no quadro de pilha de métodos chamados e copiar o endereço (no heap) do objeto DataGridView nessa variável para uso pelo método chamado . Tudo isso faz é impedir que o método chamado atribua um novo endereço do objeto DataGridView à variável no chamador (método de chamada) e, assim, mudando que DataGridView para o qual o chamador estará apontando.
- Você não precisará (precisará) passar qualquer controle com muita frequência
- Você não pode passar o próprio objeto.
- Você só pode passar a referência a um objeto e, por valor (o padrão) ou por referência (parâmetro ref), não tem impacto no uso da memória. É uma decisão de design, mas geralmente, certamente para controles, você passará a referência por valor.