Возврат строки из Main()

350
17 января 2017, 22:21

Подскажите, пожалуйста, реально каким-то образом вернуть строку из программы? Скажем, из одной программы я вызываю другую, которая должна передать какие-то данные в первую программу. msdn утверждает, что возвращаемый тип Main() либо void, либо int. Если какие-то варианты обхода, чтобы вернуть строку? Может быть это реально сделать как-то через идентификатор файла, в котором будет записана вся необходимая информация, и идентификатор которого будет возвращать вторая программа?

Answer 1

Вывод на консоль и pipe не устраивают?

echo ping 8.8.8.8 | cmd
Answer 2

Стандартным способом вывода информации в консольных программах является т.н. стандартный поток вывода (он же "стандартный вывод", stdout).

Вывод в него делается через семейство методов Console.Write или через объект Console.Out.

Если в первая программа запускает вторую - она может использовать перенаправление стандартного вывода (см ProcessStartInfo.RedirectStandardOutput) чтобы эту самую строку считать. Отмечу, что по соглашению, дополнительный поток, называемый stderr (доступный через Console.Error) не перенаправляется и доступен для вывода сообщений пользователю даже когда stdout перенаправлен в другую программу.

Если обе программы запускаются из оболочки командной строки - можно использовать пайпы чтобы соединить стандартный вывод одной программы со стандартным вводом другой:

program1 | program2

В такой случае все что одна программа вывела через Console.Write другая сможет считать через Console.Read.

Answer 3

Я думаю вам поможет MemoryMappedFile, нужные данные передавать сериализацией или другим методом. А то, что Main() возвращает int - это называется ERRORLEVEL.

READ ALSO
Полиморфизм в методах

Полиморфизм в методах

Изучаю c# поэтому возник вопрос про полиморфизмСам пробовал писать но успеха не добился поэтому спрашиваю у специалистов

333
.Net и хранение секретного токена

.Net и хранение секретного токена

Допустим есть WPF программа, которая работает клиентом через сетевое соединениеПользователь программы ввел свои имя:пароль и в ответ от сервера...

342
Передать данные из UserControl в форму

Передать данные из UserControl в форму

Есть главная форма, при нажатии на кнопку происходит открытие формы, в дочерней форме подгружается контролВопрос заключается в следующем:...

427
c# Expression<Func<type1, type2>> возникает ошибка

c# Expression<Func<type1, type2>> возникает ошибка

Есть такое выражение:

838