Преобразование типов
Рассмоторим ситуацию, когда нам нужно преобразовать один тип данных в другой. К примеру, мы получили строку, в которой записано число и нам нужно умножить данное число на 2.
Пример:
using System;
public class Program
{
static void Main(string[] args)
{
string input = "1234";
int a = input * 2; // error CS0029
}
}
Из-за того, что язык программирования C# является строго типизированным, сделать это на прямую не получиться, сперва нам нужно преобразовать один тип данных в другой. Именно этой теме будет посвящена данная глава.
Тема преобразований типов данных довольно большая, так что в этой главе мы разберем решения проблем, которые встречаются чаще всего, а точнее преобразование строк и чисел. В будущих частях книги мы разберем данную тему подробнее.
Преобразование числа в строку
Рассмотрим ситуацию, когда у нас есть некоторая переменная int a
, значение которой мы получили извне, не важно откуда предположим, что теперь a = 3
. И у нас появилась задача, как сделать так, чтобы некоторая строка string output
, равнялась значению из переменной a
.
Как это будет выглядеть в коде:
using System;
public class Program
{
static void Main(string[] args)
{
int a = 3;
string output = a; // error CS0029
}
}
Такая ошибка вызвана из-за того, что C# является строго типизированным языком.
Для того, что решить данную задачу, нам потребуется преобразовать тип данных int
в тип данных string
, делать мы это будет при помощи метода ToString()
, который присущ всем типам данным.
Пример:
using System;
public class Program
{
static void Main(string[] args)
{
string output = "";
int a = 3;
output = a.ToString();
float b = 3.5f;
output = b.ToString();
char c = 'a';
output = c.ToString();
}
}
Последний пример очень важен, так как у нас есть понимание того, что тип данных string
состоит из символов (char
), но при этом string
не может быть равен char
без преобразования.
Преобразование строки в число
Рассмотрим другую ситуацию, когда у нас есть некоторая строка string input
, в которую мы положили значение, опять же не важно откуда, предположим напрямую string input = "256"
. Мы на 100% уверены, что в этой строке содержатся только цифры. Перед нами стоит задача возвести данное число в квадрат (умножить число само на себя 2 раза). Без преобразования у нас будет похожая ошибка, что и в примере выше.
Пример:
using System;
public class Program
{
static void Main(string[] args)
{
string input = "256";
int a = input * input; // error CS0029
}
}
Чтобы преобразовать число в строку нам потребуется вызвать метод int.Parse()
и в скобках указать значения типа string
.
Пример:
using System;
public class Program
{
static void Main(string[] args)
{
string input = "256";
int a = int.Parse(input) * int.Parse(input);
}
}
int.Parse()
- метод, который принимает на вход строку и преобразует ее в тип данных int
.
Так же мы можем использовать: float.Parse()
. Метод так же должен получить строку, только после выполнения вернет уже тип данных float
.
Пример:
using System;
public class Program
{
static void Main(string[] args)
{
string input = "256,4";
float a = float.Parse(input) * float.Parse(input);
}
}
Заключение
Таким образом, теперь мы поняли как преобразовывать тип данных int
в string
и наоборот.
В следующей главе мы рассмотрим тему логические выражения.