Преобразование типов данных


Преобразование типов данных в C#

Преобразование типов данных, это приведение одного типа к другому. Например, приведение целочисленной переменной к числу с плавающей точной, или преобразование числа в строку. В C# выделяют два варианта преобразования типов:

  • Неявное преобразование типов. Это, так называемое безопасное преобразование типов в C#. Например, преобразование из типа float (более «маленький» тип) в тип double (более «большой» тип). При таком преобразовании никакая информация не «потеряется», что при обратном преобразовании вполне возможно.
  • Явное преобразование типов. Такое преобразование выполняется программистом с прямым указанием типа, к которому нужно привести переменную. Для такого преобразования требуется наличие оператора преобразования.

А теперь, я покажу как можно использовать явное преобразование типов в C#:

using System;

namespace TypesConvertion
{
    class Program
    {
        static void Main(string[] args)
        {
            //Число с плавающей точкой
            double doubleData = 245.45;

            //Вывод этого числа 
            Console.WriteLine(doubleData);

            //А теперь, мы сделаем на основе этого числа, цело число
            int intData = (int)doubleData; 

            //Вывод целого числа 
            Console.WriteLine(intData);

            //Чтобы окно не закрылось раньше времени
            Console.ReadKey();
        }
    }
}

Преобразование типа double в тип int выполнялось в выделенной строке (строке с номером 16). Если вы соберете данный пример и запустите его, то увидите, что преобразование типов прошло, т.е. из числа с плавающей точкой мы получили целое число.

Так же, для преобразования данных из одного типа в другой, есть целый класс с именем Convert, у которого имеются специальные методы. Ниже, в таблице, представлены основные методы этого класса.

Название метода Целевой тип
ToBoolean bool
ToByte byte
ToChar char
ToDouble double
ToSingle float
ToInt32 int
ToInt64 long
ToString string

А теперь, пример использования класса Convert и его методов:

using System;

namespace TypesConvertion
{
    class Program
    {
        static void Main(string[] args)
        {
            //Число с плавающей точкой
            double doubleData = 245.45;

            //Вывод этого числа 
            Console.WriteLine(doubleData);

            //А теперь, мы сделаем на основе этого числа, цело число
            int intData = Convert.ToInt32(doubleData);

            //Вывод целого числа 
            Console.WriteLine(intData);

            //Чтобы окно не закрылось раньше времени
            Console.ReadKey();
        }
    }
}

Как видите, это практически тот же код, что был в первом примере, но с использованием другого подхода в преобразовании типов.

И обратите внимание на еще одни момент, если один тип нельзя преобразовать в другой, а вы это попытаетесь сделать, то получите ошибку в программе!

Пользоваться возможность преобразования типов вам придется довольно часто!