c#将console.writeline转换为字符串

c#将console.writeline转换为字符串,c#,string,console,invoke,C#,String,Console,Invoke,我想要一个代码,它获取控制台上编写的文本并将其放在字符串变量plz上。 大概是这样的: string s = Console.WriteLine(Invoke(o, null)); string s = Invoke(o, null).ToString(); Console.WriteLine(s); 我希望它带有控制台,因为如果我调用它时没有它,我就无法从中获取文本 希望您能理解。请参阅的文档,它将把指定的数据(后跟当前行终止符)写入标准输出流。不返回任何要分配给变量的内容,其返回类型为v

我想要一个代码,它获取控制台上编写的文本并将其放在字符串变量plz上。 大概是这样的:

string s = Console.WriteLine(Invoke(o, null));
string s = Invoke(o, null).ToString();
Console.WriteLine(s);
我希望它带有控制台,因为如果我调用它时没有它,我就无法从中获取文本


希望您能理解。

请参阅的文档,它将把指定的数据(后跟当前行终止符)写入标准输出流。不返回任何要分配给变量的内容,其返回类型为void

如果要打印文本:

Console.WriteLine("Enter a name");
如果要输入任何文本:

 string name = Console.ReadLine();

试着这样做。

你不能直接这样做。我认为您可以通过获取console窗口对象或类似的东西来实现这一点,但当您只需要
console.WriteLine的输出时,确实不值得花时间来实现这一点

Console.WriteLine中有很多重载,但最终所有重载都会使用
ToString
将参数转换为字符串。因此,要将
Console.WriteLine
的输出放入字符串变量中,只需对参数调用
ToString

string s = Invoke(o, null).ToString();
如果同时要打印和存储输出,该怎么办?您可以这样做:

string s = Console.WriteLine(Invoke(o, null));
string s = Invoke(o, null).ToString();
Console.WriteLine(s);
我得到了我想要的

using (StringWriter stringWriter = new StringWriter())
        {
            Console.SetOut(stringWriter);
            Console.Write(mi.Invoke(o, null));
            string allConsoleOutput = stringWriter.ToString();

            MessageBox.Show(allConsoleOutput, "Output");
        }

谢谢大家

Console.ReadLine()
?为
Console.WriteLine
创建包装函数,您将在其中保存所有给定文本,然后再将其写入控制台。我真正想做的是,我的富文本框将获得此字符串。如果我编写richtextbox1.Text=Invoke(o,null).ToString();它不起作用