Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 合并两个程序并使用1的输出作为另一个程序的输入_C# - Fatal编程技术网

C# 合并两个程序并使用1的输出作为另一个程序的输入

C# 合并两个程序并使用1的输出作为另一个程序的输入,c#,C#,我正在尝试合并两个程序,使用一个程序的输出作为另一个程序的输入。 程序#1最终写入输出,程序2希望用户使用控制台输入。我不希望程序1的结果显示为输出,而是用作输入,这样程序2就不会要求用户输入 foreach (var item in result) { Console.Write(item); } Console.ReadLine(); **end o

我正在尝试合并两个程序,使用一个程序的输出作为另一个程序的输入。 程序#1最终写入输出,程序2希望用户使用控制台输入。我不希望程序1的结果显示为输出,而是用作输入,这样程序2就不会要求用户输入

    foreach (var item in result)
               {
                    Console.Write(item);
               }
               Console.ReadLine(); 


**end of program 1**



**program 2**

Console.WriteLine("Please, enter numbers");

var numbersStr = Console.ReadLine();

if (!string.IsNullOrEmpty(numbersStr))
        {
            numbersStr = numbersStr.Trim();

and program continues

如果这是一个普通程序,您可以将第一个程序的输出写入文件或数据库。你的第二个程序可以从中读取

using (var fileWriter = new StreamWriter(pathOfFile))
{
    foreach (var item in result)
    {
        fileWriter.Write(item);
    }
}
课程1结束

计划2

Console.WriteLine("Please, enter numbers");

var numbersStr = Console.ReadLine();

var input = File.ReadAllText(pathOfFile)

if (!string.IsNullOrEmpty(input))
{
    numbersStr = numbersStr.Trim();
}

看起来你需要的只是方法。你不需要两个程序

// name this method appropriately!
private static string Program1() {
    string retVal = "";
    // here goes your program 1
    // replace every Console.Write with retVal += ...
    // e.g.
    foreach (var item in result)
    {
        retVal += item.ToString();
    }
    return retVal;
}

// name this properly as well
private static void Program2(string input) {
    // program 2 goes here
}
主菜单中

Program2(Program1());

对于两个或两个以上的程序相互通信,有许多方法可以做到这一点,但它们并非微不足道。查看.NET远程处理、web服务等。在线上有许多关于如何实现这一点的示例以及解释它们的优秀文章。@CodingYoshi我认为.NET远程处理和web服务不适合在同一台机器上进行进程间通信。命名管道、邮箱等更合适。@RonBeyer正确,这就是为什么我说
有很多方法
并编写
等。
你怎么知道它在同一台机器内?我只知道OP需要两个进程相互通信。这个解决方案听起来很复杂……很抱歉,这是编程界的新事物。第一个程序的输出是一个6位数的数值。@也许您只想创建两个方法,一个调用另一个。你知道你可以创造方法吗?感谢你的回答。然而,现在系统显示了另一个错误。无法将类型“string”隐式转换为“int”。请帮忙