![]() |
Created by Thiago Russo
over 7 years ago
|
|
Question | Answer |
Otimizar seu código Vc está desenvolvendo uma biblioteca reutilizável p/ fazer cálculos complexos. Sua aplicação está ganhando popularidade, mas vc tá começando a ouvir algumas respostas negativas. Alguns dizem q os seus tipos n podem ser usados facilmente. Ao exibir os resultados finais de cálculos p/ o usuário final, há um monte de trabalho manual envolvido. Outros experimentam problemas de desempenho e querem q vc faça algo sobre isso. Vc começou a desenvolver a sua aplicação c/ C# 1.0, e seu aplicativo usa ArrayLists p/ manter o controle de todos os parâmetros necessários p/ os cálculos. Os seus parâmetros são implementados como um struct. Os seus algoritmos são implementados em uma hierarquia de classes, e mtas vezes vc precisa converter um tipo base p/ um tipo derivado. Pq isso nem sempre é possível, vc adicionou um monte de declarações try / catch para recuperar de erros. 1. Como pode uma coleção genérica melhorar o desempenho? | ArrayLists são nongeneric; eles só podem trabalhar com itens de tipo de objeto. Devido a isso, vc tem q fazer "boxing" e "unboxing" seus parâmetros de cálculo cada vez que você usá-los. Mudar para uma coleção genérica irá evitar todo o boxing e unboxing e irá melhorar o desempenho. |
2. Existe alguma coisa q vc pode fazer para evitar as exceções ao converter entre os tipos? | Lançar e pegar exceções é caro. Vc pode evitar as exceções ao converter itens certificando-se de q a conversão é permitida usando as palavars-chave IS e AS. Vc pode usar uma verificação booleana simples p/ ver se a conversão é permitida. |
3. Como vc pode garantir q o seu tipo é melhor convertido para os tipos CLR básicas? | Uma coisa q vc pode fazer é certificar-se de implementar conversões implícitas para os tipos CLR q deseja oferecer suporte. Tb pode add uma classe auxiliar (helper class) que auxilia na conversão de itens. |
Want to create your own Flashcards for free with GoConqr? Learn more.