C#中 #if DEBUG的使用

小编在一次开发调试中,分布式的用户登录状态报错,找了好久都没有找到问题在哪里。这时候如何不耽误开发进度忽略这个错呢?在C#中使用#if DEBUG可以完美解决这个问题。

    #if DEBUG的作用是在visual studio的DEBUG模式下代码将进入#if DEBUG的代码块。语法如下:.

#if DEBUG      Console.WriteLine("hello dotnet开发跳槽");#else      Console.WriteLine("hello dotnet6");#endif

C#中 #if DEBUG的使用

在Debug模式下,#else将变灰色不会执行,将输出“hello dotnet开发跳槽”;#else代码块中的逻辑在releae中执行,也就是生产环境中会运行,将输出“hello dotnet6”。在小编文开头的问题,可以先在#if DEBUG中自定义赋值,通过验证,这样不影响开发进度。

扩展

另外还有个Conditional("DEBUG")特性,这个加在方法上,它与#if DEBUG相反,

语法:

[Conditional("DEBUG")]public void FunName(string pr){  ......//逻辑}

这个特性只支持没有返回值的方法,在releae编译出的IL包含代码不会执行。

他们的区别如下

#if DEBUG: 发生在编译时,release编译出的IL不包含if中的代码

[Conditional("DEBUG")]: 发生在运行时,releae编译出的IL包含代码,但是不会被执行。