C# 如何规范的写 DEBUG 输出
作者:mrr 时间:2023-04-27 03:12:37
经常在代码中,需要使用 DEBUG 来输出一些奇怪的东西来进行测试。但是输出的窗口只有一个,如果有一个逗比在不停输出,那么就会让输出窗口看不到自己的内容。
Task.Run(() =>
{
while (true)
{
Console.WriteLine("我是逗比");
}
});
Console.WriteLine("有用的信息");
于是逗比喜欢自己的测试代码,因为他需要不停看到输出窗口在说自己,但是正常的程序员是只看有用的东西,所以他就会拿出刀子准备杀掉逗比。那么逗比如何防止自己被杀,他这时就告诉程序员,注释掉代码
Task.Run(() =>
{
while (true)
{
//Console.WriteLine("我是逗比");
}
});
Console.WriteLine("有用的信息");
但是程序员注释了,也没有什么作用,因为逗比在很多个地方写了这样的代码
Task.Run(() =>
{
while (true)
{
//Console.WriteLine("我是逗比");
}
});
Console.WriteLine("有用的信息");
Task.Run(() =>
{
while (true)
{
Console.WriteLine("我是逗比 1");
}
});
终于程序员注释所有的代码,可以运行了,但是逗比拿到程序员的代码,发现没有输出了,这时他又不高兴了,于是逗比去掉了所有的注释,准备在上传代码的时候再把代码注释。但是不小心,有一个地方没有注释了,所以还是被程序员打了。
那么逗比需要如何防止被程序员打?下面我就来告诉一个方法,使用 #if
一般在代码会看到这样的写法
Task.Run(() =>
{
while (true)
{
# if DEBUG
Console.WriteLine("我是逗比");
# endif
}
});
但是这样的写法是不对的,因为 DEBUG 只有在所有开发者在测试都需要使用的代码才使用他。如果是自己使用的,一般都自己定义。那么如何定义?需要在文件的开始写下面的代码
# define DEBUG_取消注释显示林德熙调试
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using lindexi.framework.mvvm;
using lindexi.controls;
using lindexi.linq;
定义的格式是 DEBUG_取消注释 后面加上功能
现在的代码就可以修改为
Task.Run(() =>
{
while (true)
{
# if DEBUG_取消注释显示林德熙调试
Console.WriteLine("我是逗比");
# endif
}
});
于是所有的我自己使用的都使用这个方法,只需要注释掉我的定义就可以去掉所有我的代码。这样就不需要一个个去注释,而且一般这句代码在上传代码的时候就去掉。
但是这个方法有个缺点,在他的作用只能在一个文件,如果有多个文件都需要写自己的代码,那么还是需要在多个文件上添加这句话,如果在上传代码的时候不记得把所有的文件进行注释,那么还是会被打。
总结
以上所述是小编给大家介绍的C# 如何规范的写 DEBUG 输出问题,希望对大家有所帮助!
来源:https://lindexi.gitee.io/lindexi/post/C-%E5%A6%82%E4%BD%95%E5%86%99-DEBUG-%E8%BE%93%E5%87%BA.html?utm_source=tuicool&utm_medium=referral
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Redis缓存策略超详细讲解
![](https://img.aspxhome.com/file/2023/8/66078_0s.png)
Android重写View实现全新的控件
![](https://img.aspxhome.com/file/2023/8/104688_0s.png)
Java带返回值的方法的定义和调用详解
java集合collection接口与子接口及实现类
![](https://img.aspxhome.com/file/2023/9/89599_0s.png)
C#中的值传递和引用传递详细解析
SpringBoot整合WebService的实现示例
![](https://img.aspxhome.com/file/2023/4/60754_0s.png)
基于C#实现网页爬虫
![](https://img.aspxhome.com/file/2023/7/72477_0s.jpg)
Java的idea连接mongodb数据库的详细教程
![](https://img.aspxhome.com/file/2023/1/59711_0s.png)
Mybatis Plugin拦截器开发过程详解
解决IDEA克隆代码后在右下角没有git分支的问题
![](https://img.aspxhome.com/file/2023/2/63112_0s.jpg)
解决SpringBoot 测试类无法自动注入@Autowired的问题
![](https://img.aspxhome.com/file/2023/7/120527_0s.jpg)
Android Handler主线程和一般线程通信的应用分析
如何使用C#在PDF文件添加图片印章
![](https://img.aspxhome.com/file/2023/3/108663_0s.png)
一文详解Java抽象类到底有多抽象
![](https://img.aspxhome.com/file/2023/8/62168_0s.png)
Android ViewPager实现无限循环效果
![](https://img.aspxhome.com/file/2023/2/122112_0s.gif)
详解ASP.NET中Identity的身份验证代码
![](https://img.aspxhome.com/file/2023/5/108815_0s.png)
Springboot实现阿里云通信短信服务有关短信验证码的发送功能
![](https://img.aspxhome.com/file/2023/9/94229_0s.png)
详解springboot集成mybatis xml方式
![](https://img.aspxhome.com/file/2023/8/64478_0s.png)