Преобразование (приведение) типов в C#
Преобразования типов существуют практически во всех языках программирования. В некоторых оно происходит автоматически, в других вручную, а в третьих - частично автоматически, частично вручную. Итак, что же такое преобразование типов?
Преобразованием типов в C# - это операция назначения переменной одного типа переменной другого типа.
В С# есть два вида преобразований:
-
неявное преобразование (автоматическое) - преобразованием меньше по размеру типа данных в больший: char -> int -> long -> float -> double
-
явное преобразование (ручное) - обратное предыдущему преобразование большего типа в меньший: double -> float -> long -> int -> char
Неявное преобразование
Неявное преобразование осуществляется автоматически при назначении переменной с меньшим типом данных большему:
int num = 5;
double dnum = num; // Автоматическое преобразование: int в double
Console.WriteLine(num); // 9
Console.WriteLine(dnum); // 9
Явное преобразование
Данный тип преобразования должен быть выполнен вручную. Для этого перед преобразуемой переменной в круглых скобках указываем желаемый тип, в который должна быть преобразована переменная исходного типа:
double dnum = 5.23;
int inum = (int) dnum; // Ручное преобразование: double в int
Console.WriteLine(dnum); // 9.78
Console.WriteLine(inum); // 9 - остается только целая часть, дробная отбрасывается
В последнем примере показан один из типов преобразования, но кроме него в C# также существуют другой способ явного преобразования типов с помощью методов встроенного класса Convert.
// преобразования
Convert.ToInt32 (int) // в тип int
Convert.ToInt64 (long) // в тип long
Convert.ToDouble // в тип double
Convert.ToBoolean // в тип boolean
Convert.ToString // в строку
Примеры использования класса Convert
int inum = 10;
double dnum = 5.25;
bool boolValue = true;
Console.WriteLine(Convert.ToString(inum)); // int в string
Console.WriteLine(Convert.ToDouble(inum)); // int в double
Console.WriteLine(Convert.ToInt32(dnum)); // double в int
Console.WriteLine(Convert.ToString(boolValue)); // bool в strin
Таким образом, преобразования типов помогаю нам получить нужный в конкретной ситуации тип данных. Некоторые из них происходят неявно, некоторые мы сами должны выполнить явно - но в любом случае хорошее понимание данной особенности необходимо, так позволит быстрее решать проблемы типов в C# в дальнейшем.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.