예제 #1
0
        public void Executar()
        {
            //No entanto, se uma conversão não puder ser realizada sem o risco de perda de informações, o compilador exigirá que você execute uma conversão explícita, que é chamada de cast.Uma conversão é uma maneira de informar explicitamente ao compilador que você pretende fazer a conversão e que você está ciente de que poderá ocorrer perda de dados.Para executar uma conversão, especifique entre parênteses o tipo para o qual você está convertendo, na frente do valor ou da variável a ser convertida.O seguinte programa converte um double em um int. O programa não será compilado sem a conversão.

            double x = 1234.7;
            int    a;

            // "Molda" (converte) um double como int.
            a = (int)x;
            System.Console.WriteLine(a);

            //// Output: 1234
            //Para obter uma lista de conversões numéricas explícitas que são permitidas, consulte Tabela de conversões numéricas explícitas.

            //Para tipos de referência, uma conversão explícita será necessária se você precisar converter de um tipo base para um tipo derivado:

            // Cria um novo tipo derivado
            Gato gato = new Gato();

            // Uma conversão implícita para o tipo base é seguro
            Animal animal = gato;

            Console.WriteLine($"animal.GetType(): {animal.GetType()}");
            //animal.GetType(): certificacao_csharp_roteiro.Gato

            // Conversão explícita é obrigatória para converter de volta
            // para o tipo derivado.
            Gato gato2 = (Gato)animal;

            Console.WriteLine($"gato2.GetType(): {gato2.GetType()}");
            //gato2.GetType(): certificacao_csharp_roteiro.Gato
            // Uma operação de conversão entre tipos de referência não altera o tipo de tempo de execução do objeto subjacente.

            // Ela apenas altera o tipo do valor que está sendo usado como uma referência a esse objeto.
        }
        public void Executar()
        {
            double vDivida = 1_234_567_890.123;
            long   vCopia  = (long)vDivida;

            Console.WriteLine(vCopia.GetType());


            Animal vAnimal = new Gato();
            Gato   vGato   = (Gato)vAnimal; //Cast = conversão explícita

            Console.WriteLine(vGato.GetType());
        }
        public void Executar()
        {
            double inteiro = 2_234_234;
            //long inteiroLongo = inteiro;
            long inteiroLongo = (long)inteiro;

            Console.WriteLine(inteiroLongo);


            Animal animal = new Gato();
            Gato   gato   = (Gato)animal;

            Console.WriteLine(gato.GetType());
        }
        public void Executar()
        {
            double divida = 1_234_567_890.123;
            //long copia = divida;

            double salario      = 1_237.89;
            long   copiaSalario = (long)salario;

            Console.WriteLine(copiaSalario);

            ///<image url="$(ProjectDir)img13.png" />
            ///

            Animal animal = new Gato();
            Gato   gato   = (Gato)animal; //cast = conversão explícita

            Console.WriteLine(gato.GetType());
        }