Quando manipulamos dados, seja para operações matemáticas, processos de concatenação ou simplesmente a leitura para
armazenamento em variáveis, os destinos e origens devem ser compatíveis, ou seja, não
podemos pegar o caractere “g” e armazená-lo em uma variável do tipo inteiro, que espera por um número. Essa é uma
característica das linguagens chamadas de fortemente tipadas, ou seja, os tipos de dados devem ser respeitados
rigorosamente. C# é uma dessas linguagens. Apenas por curiosidade, o contrário disso são as linguagens fracamente
tipadas ou dinamicamente tipadas, que permitem que o tipo de dado armazenado em uma variável seja alterado sem qualquer
conversão, ou seja, a variável aceita qualquer tipo de informação que se tentar armazenar nela. JavaScript e PHP são
bons exemplos dessas linguagens.
Bem, mas retornando ao que nos interessa, Casts são conversões para que variáveis possam armazenar
dados que, a princípio não poderiam ser aceitos por elas. Já vou exibir um exemplo, pois Casts são bastante
simples, vejam esse código, que coloca um dado do tipo float em uma variável int:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp1.png)
Agora vejam a execução desse código no Console:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp2.png)
Percebam que o valor que eu adicionei propositalmente na variável i foi totalmente
substituído pelo valor da variável f, mas a parte armazenada após a vírgula na variável
do tipo float foi perdida. Isso acontece porque uma variável int não pode armazenar casas decimais, então no momento do Cast elas são desprezadas.
Convert
Neste exemplo fiz uma conversão de números do tipo float para números do tipo inteiro,
mas poderíamos fazer de número para String. Para isso utilizamos uma sintaxe um pouco
diferente, veja:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp3.png)
Percebam que trata-se de uma sintaxe muito intuitiva. Quando digitamos Convert.ToString estamos praticamente ditando o comando ao programa. A saída desse código é:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp4.png)
Neste exemplo, ao contrário do primeiro, não existe perda de informação, pois convertemos um dado para uma String, e esta pode armazenar qualquer informação em formato de texto.
A classe Convert, utilizada aqui para a conversão, é talvez o método mais completo e
eficiente meio para realizar Casts. Ao digitar Convert seguido do ponto no Visual Studio,
o IntelliSense já nos mostra todas as conversões possíveis, veja:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp5.png)
Parse
Por ser tão completa e intuitiva assim, a classe Convert é a forma mais utilizada de
Cast, mas também existe outra, que é o método Parse. Imaginem que precisássemos
pegar uma String e convertê-la para um número. Utilizando o método Parse, teríamos:
![Casts](../../assets/img/cursos/c-sharp/12-Casts_CSharp6.png)
Existem algumas diferenças técnicas entre os três métodos citados, mas elas não são relevantes agora. Só por
curiosidade, o Parse é o mais rápido deles, mas se você está tendo seu primeiro contato
com os Casts agora, aconselho-o a usar o Convert, mais comum e completo, até porque essa diferença de velocidade não é
significativa para 99% das aplicações.
O importante é saber que os dados podem sofrer conversões e que, em alguns casos alguns, trechos podem se perder.
Fiquem sempre atentos a isso!
HARDWARE
Entendendo o seu computador
O que há dentro do meu computador?
Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.
Você Sabia?
Inteligência artificial
O primeiro jogo a fazer uso de uma Inteligência Artificial foi o Mouse in the Maze, criado em 1955, na União Soviética. Você pode saber mais sobre ele clicando aqui.
Mouse
O mouse foi criado em 9 de dezembro de 1968, por um americano chamado Douglas Engelbart, que o batizou de "XY Position Indicator for a Display System". Conheça a história do mouse clicando aqui.
Duck Hunt
Ao completar o nível 99 do jogo Duck Hunt, para Nintendo, o jogo retorna ao primeiro nível, mas um bug impede que se acerte os patos neste recomeço. Este é um exemplo do que é chamado no mundo dos games de "Kill Screen".
Cuidados com o notebook
Utilizar seu notebook em camas, sofás ou qualquer superfície macia pode obstruir as entradas e saídas de ar, elevando a temperatura e provocando danos a diversos componentes. Utilize-o sempre sobre uma superfície rígida. Saiba mais aqui.
River Raid
O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.
Ultima Online
Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras
Computadores de 1,5 tonelada
Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.
PDP-1
O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.