如何在控制台应用程序中隐藏输出(而不是窗口)?

Ser*_*uki 2 c# console command-line console-application command-line-arguments

好吧,让我再说清楚.我有一个包含许多类的控制台应用程序,在每个类中至少有一个Console.WriteLine("text")行.我定义了一些参数,在运行应用程序时,它输出的正是我在类中编写的内容.在那里,我想定义一个参数,当我使用此参数运行应用程序时,控制台屏幕上将没有输出但控制台窗口仍然出现.这个论点可能就像"-s".那么,如果不在每个类中使用"if"条件并通过类传递参数,我能做到这一点吗?非常感谢.

P/S:我通过互联网搜索并发现了一些与此相关的文章,但大多数答案都是隐藏控制台窗口.我认为这个问题应该是其他人的意思.

AMi*_*ico 7

使用Console.SetOut(http://msdn.microsoft.com/en-us/library/system.console.setout.aspx)并传入"null"文本编写器.-s执行的想法Console.SetOut(new StreamWriter()).

Console.SetOut方法的示例将帮助您入门.

此外,您可以使用此方法轻松添加日志记录.


Sho*_*Sha 6

Console.SetOut方法ArgumentNullException如果null直接传递则抛出a ;相同StreamWriter(如果你传递一个流或者如果你传递一个字符串.

我使用的是将特殊Stream.Null字段传递给 a StreamWriter

System.Console.SetOut(new System.IO.StreamWriter(System.IO.Stream.Null);
Run Code Online (Sandbox Code Playgroud)

这将流重定向到本质上是空设备(/dev/null在 *NIX 机器上)。