Другие языки программирования и технологии

Язык программирования C#

Здравствуйте, почему в Console.WriteLine(2+ " " + 10 + 1024); выводит 2 101024, а не 2 1034? Это же не строка. По идее 10 1024 должны суммироваться.
а если так?
Console.WriteLine(2+ " " + (10 + 1024));
ДД
Дмитрий Дедейко
88 586
Лучший ответ
Андрей Инкин получилось) а почему без скобок оно не складывается?
При сложении со строкой "Операнды, не относящиеся к типу string, автоматически преобразуются в строку вызовом виртуального метода ToString."
Складываешь число 2 со строкой-пробелом - получаешь строку. Складываешь эту строку с числом 10 - оно преобразуется в строку, получаешь строку. Складываешь эту строку с числом 1024 - оно преобразуется в строку, получаешь строку.
там можно и без плюса выводить значения переменных..
Кирилл Казарин
Кирилл Казарин
61 356
Потому что С# это не яваскрипт где можно делать такие убогие конструкции.
Если складываешь числа - объявляй их как числа - целочисленные или дробные.
Если делаешь конкатенацию строк - объявляй строки...
{C
{C}Aps{L}Oc{K}
79 219
Ильнур Яруллин В JS было бы то же самое
пробел в число не канает конвертить, поэтому компилятор конверитит 2 в строку и дальше все приводт к этому типу
AT
Andrei Tepliakov
52 813
Я бы лучше сделал так:
Console.WriteLine("{0} {1}", 2, 10 + 1024);
Можно и вот так
Console.WriteLine($"{2} {10+1024}");
Goga Nebaluev
Goga Nebaluev
604
Потому что, если в сложении чисел участвует хотя бы одна строка (в вашем примере строкой является пустая строка ""), то сложение будет не математическим, а строковым. То есть числа будут складываться как будто они находятся в типе string. Для избежания данной проблемы следует группировать математическое сложение круглыми скобками.
В вашем случае это Console.WriteLine(2+ " " + (10 + 1024));

За подробностями или по другим вопросам можете обратиться в сообщество программистов vk.com/itsmartbrain
Там бесплатно отвечают на вопросы и консультируют по программированию
Про неявно типизированные переменные в C# можете почитать в этой статье - https://nerolink.ru/article/difference-var-and-dynamic-in-c-sharp/