【问题标题】:How to silence fx cop warning CS0067?如何使 fx cop 警告 CS0067 静音?
【发布时间】:2013-01-04 16:18:09
【问题描述】:

在构建服务器上,我看到一些奇怪的消息。它没有这么说,但我认为它来自一些名为“fx cop”的软件

警告 CS0067:从未使用过事件“SunGard.Adaptiv.AnalyticsEngine.UI.CommonControls.DisabledCommand.CanExecuteChanged”

如何使这条消息静音?在不改变我的班级所做的事情的情况下。

sealed class DisabledCommand : ICommand
{
    public event EventHandler CanExecuteChanged;

我偶然发现了 System.Diagnostics.CodeAnalysis.SuppressMessageAttribute 的文档,这听起来很有用,但我的警告没有任何示例。

【问题讨论】:

  • 为什么不使用该事件或摆脱它?
  • @RyanGates:来自界面。
  • 请注意,以“CS”开头的错误代码来自 C# 编译器,而不是 FxCop。 FxCop 警告或错误将以“CA”开头(用于“代码分析”)。

标签: code-analysis fxcop


【解决方案1】:

如果你需要创建一个从不引发的事件,你应该创建一个 noop 事件:

public EventHandler CanExecuteChanged {
    add { }
    remove { }
}

编译器抱怨是因为默认(“类字段”)事件将创建一个隐藏的支持字段来存储处理程序。由于您从不引发事件,因此该字段只会浪费内存。

【讨论】:

  • 我会考虑使用显式接口实现来实现事件,所以直接使用实际实现类型时事件是隐藏的。
  • @RamondeKlein 我试过了,但警告并没有消失。
猜你喜欢
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 2012-06-11
  • 2012-03-04
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
  • 2020-08-03
相关资源
最近更新 更多