Mat*_*oks 13
从.NET Framework 4.5开始,您可以使用该Console.IsOutputRedirected属性来检测它.
还有Console.IsErrorRedirected.
您可以使用本机方法GetConsoleMode来查看stdout是否要转到控制台.
WriteConsole文档中的备注建议使用此方法:
...确定输出句柄是否是控制台句柄(一种方法是调用GetConsoleMode函数并检查它是否成功)...
你不能。重定向的输出完全超出了执行程序的范围。但是,您可以添加一个命令行选项来禁用漂亮的输出,以便它也可以重定向使用。
编辑:您可以(现在)...使用 .NET 4.5 及以上版本(请参阅Matt Brooks 的回答)。