#pragma warning disable&恢复

时间:2013-03-30 05:03:25

标签: c# .net compiler-warnings pragma

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

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

我怀疑在我的最终版本中我应该留下#pragma warning disable&在程序中恢复;还是我需要删除它? e.g:

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

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

3 个答案:

答案 0 :(得分:45)

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

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

#pragma warning disable 168, 3021

    //Your code that generates warnings CS0168 and CS3021 here

#pragma warning restore 168, 3021

答案 1 :(得分:6)

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

您显示的代码本身似乎没有任何错误。所以我认为你没有理由需要这个实用工具。

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

答案 2 :(得分:0)

我在asp.net mvc(.net core)应用程序中遇到此错误。基于此以上和其他文章显示此错误来自您在ctml方面的尖锐代码。

要确定问题,只需在单独的窗口中打开控制台或打开cshtml。

我有一个弹出窗口,这个错误来了,我单独打开这个弹出窗口,同时在控制台中投入错误,我得到的一个分号不在cshtml中,所以在渲染chtml时它会抛出错误。