#pragma warning disable&restore

Sar*_*mar 25 .net c# pragma compiler-warnings

我用c#创建了第一个项目.我有很多警告错误,所有这些警告错误都是单一错误(内部编译器错误.有关详细信息,请参阅控制台日志.)

为了减少警告错误,我使用了#pragma Warning disable.#pragma warning恢复有问题代码的正面和背面.

我怀疑在我的最终版本中我应该保留#pragma warning disable&restore,因为它在程序中; 还是我需要删除它?例如:

#pragma warning disable
if (Displayer.instance != null && CTR.Tore== "Keepit")
{
    Displayer.instance.SetFielderProfile (i);
}
#pragma warning restore
Run Code Online (Sandbox Code Playgroud)

对于最终版本,我是否需要删除它?

Del*_*ted 47

至少你应该具体说明你故意选择忽略哪些警告.这样,如果以后的维护引入了一个您应该知道的"新"警告/问题,那么您的一般编译指示警告禁用指令将不会抑制有关新引入的错误的警告.

您可以从Visual Studio中的构建"输出"窗口中获取与您决定忽略的构建问题有关的警告编号.它们通常标有"警告CS0168 ......"或类似标签.在这种情况下,您可以专门针对您决定忽略的错误,如下所示:

#pragma warning disable 168, 3021

    //Your code that generates warnings CS0168 and CS3021 here

#pragma warning restore 168, 3021
Run Code Online (Sandbox Code Playgroud)

  • +1.我添加了一个建议,一个人总是有一个评论解释为什么0128和3021不适用于这里; 部分是因为如果你不能写出一个充分的理由,那么你只是隐藏了一个错误,部分原因是因为在开发人员的合理决定和懒惰的掩盖之间看待它的其他人是不同的. (19认同)
  • 也可以使用“#pragma warning disable CS0168, CS3021”。 (3认同)

Ale*_*kov 6

如果它是任何实用值的代码,您不应该有任何警告,并在打开所有警告的情况下使用"警告错误"设置进行编译.

您显示的代码本身似乎没有任何错误.所以我认为没有必要为什么需要这个pragma.

但它真的是你的电话 - 你的代码,如果没有人需要使用/查看/支付它 - 做任何适合你的事情.