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

时间:2017-08-18 11:56:12

标签: c# string console invoke

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

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

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

我希望你理解它。

4 个答案:

答案 0 :(得分:1)

你不能直接这样做。我认为你可以通过获取控制台窗口对象或类似的方式来做某事,但当你只想要Console.WriteLine的输出时,真的不值得花时间去做。

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

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

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

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

答案 1 :(得分:1)

我得到了我想要的东西

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

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

感谢每一个人!

答案 2 :(得分:0)

请参阅anyCable的文档,该文档将指定的数据(后跟当前行终止符)写入标准输出流。不返回任何赋值给变量的东西,它的返回类型是void

答案 3 :(得分:0)

如果您想要打印文字:

Console.WriteLine("Enter a name");

如果您想输入任何文字:

 string name = Console.ReadLine();

尝试这种方式。