Fórum Type Cast... Alguma Contra-indicação? #333909
29/11/2006
0
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
Curtir tópico
+ 0Posts
30/11/2006
Leonardobhbr
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
Gostei + 0
01/12/2006
Marco Salles
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..
Gostei + 0
01/12/2006
Brasidata
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.
Gostei + 0
01/12/2006
Marco Salles
mas certamente o seu projeto pode ter centenas dessas intruçoes , mas o codigo que esta sendo executado num determinado momento não tera
Gostei + 0
01/12/2006
Motta
Gostei + 0
02/12/2006
Brasidata
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
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)