问题:是否存在一种简单的方法来隐藏/显示Console.WriteLine,在运行项目时在项目中创建?
这些Console.WriteLines用于在调试时向我提供信息,但是当我的老师运行代码时,它们应该被隐藏。
我试图创建一个新的项目库(.NET Framework 4.7.2),其他项目可以引用该库:
//=========================== SCOPE ===========================
// Help the programmer to show/hide Console.WriteLines
//=============================================================
// TODO: Add verbose-levels
using System;
namespace Information
{
public static class Verbose
{
public static bool On { get; set; }
}
}
以及在另一个项目中时的外观:
using Information;
...
if (Verbose.On) { Console.WriteLine("Text here!"); }
答案 0 :(得分:5)
我相信您应该为此使用System.Diagnostic设置。
您可以在下面的配置部分添加并添加控制台侦听器。
<configuration>
<system.diagnostics>
<sources>
<source name="primes" switchValue="All">
<listeners>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" />
</listeners>
</source>
</sources>
</system.diagnostics>
</configuration>
然后使用Trace.WriteLines将跟踪输出重定向到控制台。
请注意,switchValue属性控制应将哪些语句记录到控制台。如果其值设置为关闭,则不会在控制台上记录任何内容。
在C#代码中,您可以像下面这样实例化:
TraceSource _source = new TraceSource();
然后在编写日志语句时,可以如下设置跟踪级别:
_source.TraceEvent(TraceEventType.Information, 0, "statement to be logged");
答案 1 :(得分:2)
您在这里有很多选择:
快速方法:我假设您正在做一个快速简单的作业,我会按照Damien_The_Unbeliever的建议使用Debug.WriteLine
。仅在调试期间,输出将位于“输出”窗口中。或者,您可以使用#if directive。
使用Trace and Trace Listener进行正确的跟踪。