我想要一个代码,它将控制台上编写的文本放在字符串变量上,请。 像这样:
string s = Console.WriteLine(Invoke(o, null));
我希望它带有控制台,因为如果我在没有它的情况下调用它,我将无法从中获取文本。
我希望你能理解。
我得到了我想要的
using (StringWriter stringWriter = new StringWriter())
{
Console.SetOut(stringWriter);
Console.Write(mi.Invoke(o, null));
string allConsoleOutput = stringWriter.ToString();
MessageBox.Show(allConsoleOutput, "Output");
}
谢谢大家!
你不能直接这样做。我认为您可以通过获取控制台窗口对象或类似的东西来以某种方式做到这一点,但是当您只想输出Console.WriteLine
时,真的不值得花时间这样做。
有很多Console.WriteLine
重载,但最终所有的重载都会使用ToString
将参数转换为字符串。因此,要将Console.WriteLine
的输出放在字符串变量中,只需在参数上调用ToString
。
string s = Invoke(o, null).ToString();
如果要同时打印和存储输出怎么办?你可以这样做:
string s = Invoke(o, null).ToString();
Console.WriteLine(s);
请参阅Console.WriteLine()
的文档,它将 将指定的数据(后跟当前行终止符(写入标准输出流。 不返回要分配给变量的任何内容,它的返回类型为 void
如果你想打印文本:
Console.WriteLine("Enter a name");
如果要输入任何文本:
string name = Console.ReadLine();
试试这种方式。