当前位置:  开发笔记 > 编程语言 > 正文

C#:是否需要pragma警告恢复?

如何解决《C#:是否需要pragma警告恢复?》经验,为你挑选了1个好方法。

从msdn我得到这个:

#pragma warning disable warning-list
#pragma warning restore warning-list

在示例中,使用了disablerestore.restore如果我想要为整个文件禁用它,是否有必要?

就像,如果我不恢复,它携带多远?之后编译的所有内容都禁用警告吗?或者仅仅是该文件的其余部分?还是被忽略了?



1> ShuggyCoUk..:

如果不还原,则对文件的其余部分禁用处于禁用状态.

有趣的是,这种行为没有在语言规范中定义.(参见第9.5.8节)但是,条件编译符号的9.5.1部分确实表明"直到文件结束行为"

符号保持定义,直到处理完相同符号的#undef指令,或者直到达到源文件的末尾.

鉴于"预处理器"实际上是编译的词法分析阶段的一部分,在可预见的未来,这种行为很可能是微软和所有其他实现的有效合同(特别是因为替代将是非常复杂且非确定性的在源文件编译顺序)


总结:行为没有定义所以我们需要恢复
@TKK它似乎是"未定义的",因为它取决于编译器处理文件的顺序.它会在编译器跨越它时生效,并在明确禁用之前保持有效.文件结束不适用于部分.您肯定希望在每个文件中禁用和重新启用,无论您需要它.
推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有