Pergunta

Penso no DataGridView como porcos da memória. É melhor passar pelo valor um DataGridView ou por referência? Deveria até ser passado?

Foi útil?

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.

  1. Você não precisará (precisará) passar qualquer controle com muita frequência
  2. Você não pode passar o próprio objeto.
  3. 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.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top