2013-01-04 10 views
5

Su un server di build, vedo un messaggio strano. Non dice così, ma credo che sia da qualche software chiamato 'fx poliziotto'Come silenziare l'avviso di fx cop CS0067?

Attenzione CS0067: L'evento 'SunGard.Adaptiv.AnalyticsEngine.UI.CommonControls.DisabledCommand.CanExecuteChanged' non viene mai utilizzata

Come posso disattivare questo messaggio? Senza cambiare ciò che fa la mia classe.

sealed class DisabledCommand : ICommand 
{ 
    public event EventHandler CanExecuteChanged; 

ho inciampato su Documenti per System.Diagnostics.CodeAnalysis.SuppressMessageAttribute che suona utile, ma non ci sono esempi per il mio avvertimento.

+0

Perché non usi l'evento o ti liberi? –

+2

@RyanGates: proviene da un'interfaccia. – SLaks

+5

Solo così sai, un codice di errore che inizia con "CS" proviene dal compilatore C#, non da FxCop. Un avviso o errore FxCop inizierà con "CA" (per "analisi del codice"). –

risposta

14

Se avete bisogno di creare un evento che non è mai cresciuto, si dovrebbe fare un evento noop:

public EventHandler CanExecuteChanged { 
    add { } 
    remove { } 
} 

Il compilatore si lamenta perché un default ("campo-like") evento creerà un supporto nascosto campo per memorizzare i gestori. Dal momento che non si eleva mai l'evento, quel campo spreca solo memoria.

+0

Grazie Slaks, ha funzionato. –

+1

Prenderò in considerazione l'implementazione dell'evento utilizzando * l'implementazione dell'interfaccia esplicita *, quindi l'evento viene nascosto quando viene utilizzato direttamente il tipo di implementazione effettivo. –

Problemi correlati