8

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

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

我怎样才能使这条消息静音?在不改变我的班级所做的事情的情况下。

sealed class DisabledCommand : ICommand
{
    public event EventHandler CanExecuteChanged;

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

4

1 回答 1

18

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

public EventHandler CanExecuteChanged {
    add { }
    remove { }
}

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

于 2013-01-04T16:22:15.473 回答