Fórum Type Cast... Alguma Contra-indicação? #333909

29/11/2006

0

Bom dia amigos,
Sou um ´desenvolvedor´ auto-didata, que ainda tenho muito a aprender. Trabalho com o BDS 2006 há quase um ano (desde o seu lançamento) e tento usar ao máximo os recursos dessa magnífica ferramenta.
Atualmente, eu AINDA venho trabalhando apenas com WIN32 e tenho usado com muita frequencia o recurso de Type Cast, explorando bastante o SENDER e Cia. o que tem me adiantado demais o trabalho com o reaproveitamento de códigos.
O que gostaria de discutir com vocês é:
Sabe-se de alguma contra-indicação para o type-cast?
O uso excessivo pode causar alguma perda na performance do aplicativo?
Fazer referencia DIRETA a um objeto (e ter que editar o código para cada objeto) no lugar do type cast pode tornar a aplicação mais rápida?

Gostaria de saber a opnião dos colegas nesse assunto

Obrigado pela atenção
Marco Dell Isola


Brasidata

Brasidata

Responder

Posts

30/11/2006

Leonardobhbr

quanto a performance voce perde um pouco pois o delphi tem que descubrir em run-time se o sender por exemplo tem os mesmas propriedades definida.

Só que eu aconselho utilizar pois voce consegue reduzir muito o codigo aproveitand existe dois tipos de tipe Cast

[color=green:06b292530d]
TClasse(Sender).property

ou

(Sender as TClasse).property

[/color:06b292530d]

a diferença entre as duas é que a segunda teoricamente o delphi só ira compilar se ele ver que tem chance de funcinar o codigo, e a primeira não
voce deve ter certeza do que está fazendo pois o delphi só vai analisar em run-time


Responder

Gostei + 0

01/12/2006

Marco Salles

TClasse(Sender).property ou (Sender as TClasse).property



a diferrença principal entre os dois tipos de conversão é que na primeira conversão voce deve ter certeza absoluta do tipo de dados que voce ira converter e erros estranhos podem ocorrer , caso voce não passe o tipo de dados correto e a segunda levantara uma exceção do tipo EInvalidCast, impedindo que uma conversão inválida possa ocorrer.

Quanto a performance , voce deve levar em conta que o seu codigo , no processamento propriamente dito tem pouquisimas conversões ,[b:e32c51787f] mesmo que seu programe esteja cheio de conversões[/b:e32c51787f] , na hora do processamento propriamento dito , poucas instruçoes desta natureza , estara sendo processada num mesmo momento... Portanto perda de performance infima..


Responder

Gostei + 0

01/12/2006

Brasidata

[color=green:7799dcbf9c]
TClasse(Sender).property

ou

(Sender as TClasse).property

[/color:7799dcbf9c]

Uso sempre a segunda opção. Confesso que nem conhecia a primeira.
Realmente eu não notei queda de performance nos meus (pequenos) sistemas. De qualquer maneira lancei a discussão no fórum por medo de algum efeito colateral num projeto maior com centenas de instruções como esta rodando no aplicativo.


Responder

Gostei + 0

01/12/2006

Marco Salles

lancei a discussão no fórum por medo de algum efeito colateral num projeto maior com centenas de instruções como esta rodando no aplicativo.


mas certamente o seu projeto pode ter centenas dessas intruçoes , mas o codigo que esta sendo executado num determinado momento não tera


Responder

Gostei + 0

01/12/2006

Motta

Não sei bem o motivo de ter tanta necessidade de fazer cast, uma coisa com que se deve tomar cuidade é a sindrome da ´gaveta da cozinha´, aquela gaveta que tem tesoura, durex , faca, troco da padaria, jornal, pano velho , ou seja ,jogar todos os objetos sem classificação, pior que a questão da performance é a questão da clareza ou simplicidade da manutenção.Acho o Cast um ótimo recurso quando bem usado e isto depende de bom senso, fica difícil generalizar um uso correto ou não.


Responder

Gostei + 0

02/12/2006

Brasidata

Não sei bem o motivo de ter tanta necessidade de fazer cast, uma coisa com que se deve tomar cuidade é a sindrome da ´gaveta da cozinha´, aquela gaveta que tem tesoura, durex , faca, troco da padaria, jornal, pano velho , ou seja ,jogar todos os objetos sem classificação, pior que a questão da performance é a questão da clareza ou simplicidade da manutenção.Acho o Cast um ótimo recurso quando bem usado e isto depende de bom senso, fica difícil generalizar um uso correto ou não.


Boa observação!
Mas só para não parecer que uso o recurso para TODA e qualquer situação, na verdade , lanço mão do TypeCast sempre para aqueles trechos de código que se repetirão com muita frequencia dentro de um projeto ou até mesmo para uso em outros projetos sem a necessidade de edição. Não acredito estar comprometendo a clareza ou a manutenção , ao contrário, tenho tido MUITO mais facilidade na compreensão e manipulação do fonte com ele mais enxuto.
Mas não há dúvida que, assim como tudo na vida, o BOM SENSO tem sempre que imperar.
Obrigado por mais essa colaboração

Abraços


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar