如何在代码中缩进#if指令?

14

可能是重复问题:
如何强制缩进C#条件指令?
Visual Studio能自动缩进/格式化预处理指令吗?

在以下示例代码中有一个#if指令,但请注意缺乏缩进:

                else
                {
#if DEBUG
    Debug.Print(ex.Message);
#endif                    
                    return null;
                }

我知道这可能是为了一些纯粹的开发实践,但是在VS.NET中,老实说我不关心它,而且更喜欢它与我的代码对齐。有没有办法让#指令与VS.NET中其余代码行内自动缩进对齐?

谢谢!


可能重复:https://dev59.com/tGkv5IYBdhLWcg3wgRCc,https://dev59.com/MHM_5IYBdhLWcg3wlEFH - Justin Helgerson
1
你还应该考虑使用ConditionalAttribute(https://dev59.com/HW865IYBdhLWcg3wfusk) - Surfbutler
3个回答

5

我不确定你是否可以在Visual Studio中原生完成此操作。你可能需要使用插件,例如 StyleCop。请参见http://stylecop.codeplex.com/

我理解为什么你想要进行缩进-因为条件指令目前看起来非常凌乱。然而,由于当前的缩进方式,读取您的代码的人可以很容易地看到它。由于条件指令可以极大地改变代码的流程,因此保持原样也许是可以的。否则,你可以使用插件选项:)


2
我试图在这里搜索一些东西:
选项 -> 文本编辑器 -> C#
但不幸的是,似乎 Visual Studio 没有内置任何允许您以那种方式缩进预处理器指令的功能。然而,在谷歌上搜索,我发现了这个答案,它建议使用StyleCop。希望这可以帮助你。

0

我不知道有什么问题,但是 #pragma 不应该缩进,因为它们不受代码影响。当然,Debug.Print 可以缩进。


10
我认为在C#中缩进不会影响任何代码,它只是为了可读性。 - rizalp1
2
同意。我的意思是说,编译指示不受任何先前的普通代码行的影响,因此不应该像它们一样缩进。 - Surfbutler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接