为了账号安全,请及时绑定邮箱和手机立即绑定

有没有一种简单的方法可以在运行时隐藏/显示 Console.WriteLines?

有没有一种简单的方法可以在运行时隐藏/显示 Console.WriteLines?

C#
万千封印 2022-10-23 16:19:09
问题:是否有一种简单的方法可以在运行项目时隐藏/显示项目中制作的 Console.WriteLines?这些 Console.WriteLines 用于在调试时为我提供信息,但是当我的老师运行代码时它们应该被隐藏。我尝试制作一个新的项目库(.NET framework 4.7.2),其他项目可以参考://=========================== SCOPE ===========================//   Help the programmer to show/hide Console.WriteLines//=============================================================// TODO: Add verbose-levelsusing System;namespace Information{    public static class Verbose    {        public static bool On { get; set; }    }}以及在另一个项目中时的外观:using Information;...if (Verbose.On) { Console.WriteLine("Text here!"); }
查看完整描述

2 回答

?
叮当猫咪

TA贡献1776条经验 获得超12个赞

我相信您应该为此使用 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 属性控制应将哪些语句记录到控制台。如果将其值设置为Off ,则不会在控制台上记录任何内容。


在 C# 代码中,您可以像下面这样实例化:


TraceSource _source = new TraceSource();

然后在编写日志语句时,您可以设置跟踪级别如下:


_source.TraceEvent(TraceEventType.Information, 0, "statement to be logged");

您可以在此 MSDN 页面上了解有关日志级别的更多信息。

请在此 MSDN页面上找到示例。


查看完整回答
反对 回复 2022-10-23
?
梵蒂冈之花

TA贡献1900条经验 获得超5个赞

您在这里有很多选择:

  • 快速方法:我假设您正在做一个快速而简单的作业,我会Debug.WriteLine按照 Damien_The_Unbeliever 的建议简单地使用。仅在调试期间输出将显示在“输出”窗口中。或者,您可以使用#if 指令

  • 使用Trace 和 Trace Listener进行正确的跟踪。

  • 矫枉过正的方式:使用像NLoglog4net这样的日志框架。


查看完整回答
反对 回复 2022-10-23
  • 2 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信