Подскажите, пожалуйста, реально каким-то образом вернуть строку из программы? Скажем, из одной программы я вызываю другую, которая должна передать какие-то данные в первую программу. msdn утверждает, что возвращаемый тип Main() либо void, либо int. Если какие-то варианты обхода, чтобы вернуть строку? Может быть это реально сделать как-то через идентификатор файла, в котором будет записана вся необходимая информация, и идентификатор которого будет возвращать вторая программа?
Вывод на консоль и pipe не устраивают?
echo ping 8.8.8.8 | cmd
Стандартным способом вывода информации в консольных программах является т.н. стандартный поток вывода (он же "стандартный вывод", stdout).
Вывод в него делается через семейство методов Console.Write
или через объект Console.Out
.
Если в первая программа запускает вторую - она может использовать перенаправление стандартного вывода (см ProcessStartInfo.RedirectStandardOutput
) чтобы эту самую строку считать. Отмечу, что по соглашению, дополнительный поток, называемый stderr (доступный через Console.Error
) не перенаправляется и доступен для вывода сообщений пользователю даже когда stdout перенаправлен в другую программу.
Если обе программы запускаются из оболочки командной строки - можно использовать пайпы чтобы соединить стандартный вывод одной программы со стандартным вводом другой:
program1 | program2
В такой случае все что одна программа вывела через Console.Write
другая сможет считать через Console.Read
.
Я думаю вам поможет MemoryMappedFile, нужные данные передавать сериализацией или другим методом. А то, что Main() возвращает int - это называется ERRORLEVEL.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Изучаю c# поэтому возник вопрос про полиморфизмСам пробовал писать но успеха не добился поэтому спрашиваю у специалистов
Допустим есть WPF программа, которая работает клиентом через сетевое соединениеПользователь программы ввел свои имя:пароль и в ответ от сервера...
Есть главная форма, при нажатии на кнопку происходит открытие формы, в дочерней форме подгружается контролВопрос заключается в следующем:...