Pular para o conteúdo principal

Postagens

Mostrando postagens de junho, 2016

Delegate, FUNC e Action no C# com Fibonacci?

Vamos direto ao ponto: a melhor maneira de aprender a usar uma nova funcionalidade de sua linguagem de programação favorita é identificá-la em um uso do dia a dia. Vamos então utilizar um problema, identificar a situação ao qual o delegate  seria útil e vamos mostrar o uso para melhorar a qualidade do seu código. Existe um algorítimo que todo aspirante a programador tem que aprender para firmar o conhecimento no uso de iterações que é o algorítimo do Fatorial. Basicamente, o objetivo é descobrir qual seria o fatorial do número 3, por exemplo,  Fat3 = 3 * 2 * 1 = 6. Uma das formas de desenvolver isto no C#, em uma Console Application , é fazer um laço decremental sempre multiplicando o valor resultante pelo número que está no laço. Por exemplo: Mas existe uma outra forma também, que seria fazer um algorítimo recursivo. Mais ou menos como abaixo. O resultado neste caso não muda. O problema é se quisermos mostrar os dois resultados juntos. Olha como fic...

Contador fora do FOR?

Pequenas dicas do dia a dia para quem realmente gosta de programar. Se a sincera frase de um ator desconhecido que diz  "Honestidade em pequenas coisas nunca é uma coisa pequena" é verdade, então também venho a crer que qualidade de código em pequenos códigos nunca é tempo perdido. Veja uma situação simples que foge de 70% dos bons desenvolvedores: Suponhamos que você tenha que percorrer uma coleção de objetos que estão em um array . 1 var array = new string [arrayLength]; E precisa percorrê-lo. É claro que o primeiro código que te vem a cabeça é 1 for ( int i = 0 ; i < array.Length; i++) { /* qualquer coisa... */ } Não tem problema, na minha também, mas o que você não sabe é que pequenas atitudes mudam o mundo. No código acima, todas as vezes que o loop for executado você também executará uma chamada ao método ... 1 array.Length Agora, se puxarmos esta chamada para fora do laço, executaremos somente uma vez e todas as verifica...