Minicursos - C#

Casts


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 armazena-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

Agora vejam a execução desse código no Console:

Casts

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

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

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

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

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!



Algumas notícias

As memórias DDR5 estão chegando e trarão muitas melhorias

A próxima geração de memórias RAM já possui especificações definidas e promete grande melhoria em relação às atuais DDR4. E o mais importante: mesmo com desempenho bastante superior, elas consumirão menos energia. A tensão de trabalho das memórias DDR5 será de apenas 1.1V contra os 1.2V das atu...

Ler Notícia Completa

Google Chrome consumirá menos memória RAM em breve

O navegador da gigante de buscas da Internet é, sem dúvida, um dos melhores disponíveis, mas é inegável que o consumo de memória RAM por parte dele é exagerado. Este problema já se estende por anos, mas parece que em breve ele terá uma solução. Um novo recurso do Windows 10, chamado SegmentHeap...

Ler Notícia Completa
Você gostará destes vídeos!