VirQ. Приведение целого числа к строковому типу в C#
Язык C# входит в ТОП-5
самых популярных языков
программирования
Главная / Приведение типов /
Приведение целого числа к строковому типу
Статей на сайте: 61

Приведение целого числа к строковому типу


Для приведения числа к строковому типу используется метод ToString().
Но чтобы понять, что это и зачем, необходимо знать, что для компьютера это разные понятия:
[code] int a = 1234; string s = "1234"; [/code]
В int и прочие другие целые и дробные типы можно сохранять ЧИСЛА. Это то, с чем можно проводить арифметические действия такие, как +, -, * и /.
В string типе можно сохранять любые символы. И "1234" компьютер тоже воспринимает, как символы.
Скажем, вот такой пример:
[code] string s1 = "1234"; string s2 = "6"; string s3 = s1 + s2; //Получим 12346 [/code]
Вы не получите тут 1240 (1234+6). В строковом представлении числа все цифры воспринимаются, как произвольные символы.
В некоторых случаях это удобно, в некоторых необходимо.
[code] int age = 25; MessageBox.Show(age); //Ошибка [/code]


Нажав "Нет", вы получите список ошибок


Метод MessageBox.Show показывает сообщение в окошке. Но он не может показать число типа int. Его надо конвертировать в строковой тип
[code] int age = 25; string s = age.ToString(); MessageBox.Show(s); [/code]
или же так:
[code] int age = 25; MessageBox.Show(age.ToString()); [/code]
Кстати, есть разница от последовательности применения ToString
[code] int a = 25; int b = 111; string s = a.ToString() + b.ToString(); //Результат 25111 //Тут соединили строки "25" и "111" рядом друг за другом [/code]
а тут так:
[code] int a = 25; int b = 111; string s = (a + b).ToString(); //Результат 136 //Тут сперва получили числа 25 и 111, а потом сложили [/code]
Для дотошных программистов:
[code] int a = 25; int b = 111; string s = a.ToString() + b; //Результат 25111 string t = a + b.ToString(); //Результат 25111 [/code]
Дело в том, что тут происходит неявно преобразование int в string, если идёт попытка сложения числа и строки
Например, если поставить число между двух строк, то явно через ToString() переводить не нужно
[code] int x = 1000000; string s = "В моём городе живёт " + x + " человек"; [/code]
В данном случае х переводить в строку через x.ToString() не нужно. Это будет выполнено неявным образом во время компилирования программы.

Дополнительная информация о том, как вывести результат в консоли или WinForm