如何使 fx cop 警告 CS0067 静音?

Posted

技术标签:

【中文标题】如何使 fx cop 警告 CS0067 静音?【英文标题】:How to silence fx cop warning 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”开头(用于“代码分析”)。 【参考方案1】:

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

public EventHandler CanExecuteChanged 
    add  
    remove  

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

【讨论】:

我会考虑使用显式接口实现来实现事件,所以直接使用实际实现类型时事件是隐藏的。 @RamondeKlein 我试过了,但警告并没有消失。

以上是关于如何使 fx cop 警告 CS0067 静音?的主要内容,如果未能解决你的问题,请参考以下文章

为 FX Cop 生成代码属性

如何在 Swift 中静音“从不变异”的警告? [复制]

iOS Autolayout:可以将约束优先级设置为 999 以使警告静音吗?

如何选择性地静音 Rails 3 弃用警告?

COP26发出警告:全球上市公司将导致气温上升3°C

在 IntelliJ 中为一行禁用警告