Возник один вопросик по Console::Write(), как она себя ведёт при такой форме вызова Console::Write("Строка " + " очень" + "длинная") , будет ли она выводится одним вызовом? Поясню в чём проблема, дело в том что я запускаю в Node.js процесс через spawn и использую вывод STDUOT для получения данных в JSON из программы, и когда я вызывал много Console::Write и в конце Console::WriteLine иногда я ловил исключение в Node.js о непредвиденном окончании JSON, и судя по логу иногда Node.js заканчивал чтение STDUOT после одной из Console::Write(), хотя если запустить программу в консоли то никаких разрывов нету, как я понял между двумя Console::Write() иногда происходит какая-то задержка и Node.js считает что вывод STDUOT закончен. Единственное что сейчас не очень устраивает это то что получаются очень длинные и некрасивые Console::WriteLine(), поэтому хотелось бы их сделать покороче.
Asked
Active
Viewed 247 times
1 Answers
2
Я думаю, вы имеете в виду C++/CLI.
В этом предложении
Console::Write("Строка " + " очень" + "длинная");
сначала вычисляется выражение аргумента, то есть выражение
"Строка " + " очень" + "длинная"
которое создает одну строку из трех строк посредством их конкатенации, и затем эта результирующая строка выводится на консоль функцией Write.
Vlad from Moscow
- 44,824
"Строка " + "очень"имеет типSystem::String^(в отличие от просто"Строка очень"). – VladD May 09 '17 at 10:12