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

c# convert console.writeline to a string

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

string s = Console.WriteLine(Invoke(o, null));

我想要它与控制台一起使用,因为如果我在没有它的情况下调用它,我将无法从中获取文本。

希望你理解。

参见Console.WriteLine()的文档,它将指定的数据,后跟当前行终止符,写入标准输出流。 return 没有任何东西可以分配给变量,它的 return 类型是 void

如果您想要打印文本:

Console.WriteLine("Enter a name");

如果您想输入任何文字:

 string name = Console.ReadLine();

试试这个方法。

您不能直接这样做。我认为你可以通过获取控制台 window 对象或类似的东西来以某种方式做到这一点,但是当你只想要 Console.WriteLine.

的输出时,真的不值得花时间这样做

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

string s = Invoke(o, null).ToString();

如果你想同时打印,存储输出怎么办?你可以这样做:

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");
        }

感谢每一位!