【问题标题】:VB.net: Suppress Error Message ProblemVB.net:抑制错误消息问题
【发布时间】:2010-07-28 13:17:51
【问题描述】:

我已阅读 MSDN Page 关于如何禁止消息的内容。我无法压制 VS2008 的警告。

我已经尝试了以下列出的说明:

  1. 在错误列表中,选择 警告或要压制的警告。 可以选择多个警告 同时。

  2. 右键单击警告,指向 抑制消息,然后单击 在源代码或项目中 抑制文件。

  3. 特定警告被抑制, 并且警告出现在错误中 带有删除线的列表窗口。

但是,当我在 '错误列表' 中单击鼠标右键时,我只能看到以下选项:

  • 排序方式
  • 显示列
  • 显示错误帮助
  • 复制
  • 上一个错误
  • 下一个错误

为什么 Visual Studios 2008 for VB.net 不显示“隐藏消息”

我无法生成以下抑制消息:

<Scope:SuppressMessage("Rule Category", "Rule Id", "Justification", "MessageId", Scope = "Scope", Target = "Target")>

问题是我有一系列依赖于复选框的并行任务。我希望每个任务同时运行,然后再加入。我通过使用递减的回调方法克服了警告,直到所有回调完成。

即(根据记忆):

chkbox1.enable = false
chkbox2.enable = false
dim dlgChkbox1 as Action = addressof Task1
dim dlgChkbox2 as Action = addressof Task2
...
if chkbox1.checked = true then
   result = dlgChkbox1.BeginInvoke(nothing,nothing)
end if
if chkbox2.checked = true then
   result = dlgChkbox2.BeginInvoke(nothing,nothing)
end if
...
if chkbox1.checked = true then
    dlgChkbox1.EndInvoke()
end if
if chkbox1.checked = true then
    dlgChkbox2.EndInvoke()
end if
...
chkBox1.enable = true
chkBox2.enable = true

警告是未初始化的变量。情况并非如此,因为它依赖于相同的 if 语句。我选择使用回调方法,结果证明这是一个更好的选择,并且没有锁定 GUI。

【问题讨论】:

  • 与其抑制警告,为什么不首先解决导致警告的问题?

标签: vb.net suppress-warnings


【解决方案1】:

错误的 MSDN 页面。那篇文章谈到了抑制代码分析工具产生的警告。与 VB.NET 编译器非常不同的动物。

要禁止编译器警告,请使用项目 + 属性、编译选项卡、警告配置部分。找到您要禁用的特定警告消息,将通知设置从“警告”更改为“无”。 “禁用所有警告”复选框是大锤解决方案。

【讨论】:

  • 我不想抑制特定类型的所有警告,只是我知道它是安全的实例。是否有类似于#pragma warning disable / #pragma warning restore 的?
  • 没有。如果您需要其他方法的帮助,请发布代码的 sn-p。
  • 感谢您的帮助。我重新解决了这个问题。我认为#pramga 或元数据标签将是 VB 的一个很好的补充。
猜你喜欢
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2021-12-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多