2013-01-04 10 views
5

Na serwerze kompilacji widzę dziwną wiadomość. To nie tak powiedzieć, ale myślę, że z jakiegoś oprogramowania o nazwie „cop fx” CS0067Jak wyciszyć ostrzeżenie policjanta fx CS0067?

Ostrzeżenie: Zdarzenie „SunGard.Adaptiv.AnalyticsEngine.UI.CommonControls.DisabledCommand.CanExecuteChanged” nigdy nie jest używany

Jak mogę uciszyć tę wiadomość? Bez zmiany tego, co robi moja klasa.

sealed class DisabledCommand : ICommand 
{ 
    public event EventHandler CanExecuteChanged; 

natknąłem się docs dla System.Diagnostics.CodeAnalysis.SuppressMessageAttribute które brzmi użyteczny, ale nie ma żadnych przykładów mojego ostrzeżenia.

+0

Dlaczego nie wykorzystasz tego wydarzenia lub się go nie pozbędziesz? –

+2

@RyanGates: To z interfejsu. – SLaks

+5

Tak, jak wiecie, kod błędu zaczynający się od "CS" pochodzi z kompilatora C#, a nie z FxCop. Ostrzeżenie lub błąd FxCop rozpocznie się od "CA" (dla "analizy kodu"). –

Odpowiedz

14

Jeśli potrzebujesz, aby stworzyć wydarzenie, które nigdy nie zostanie podniesiony, należy dokonać zdarzenie noop:

public EventHandler CanExecuteChanged { 
    add { } 
    remove { } 
} 

Kompilator narzeka ponieważ domyślne („Pole-like”) wydarzenie stworzy ukryte poparcie pole do przechowywania handlerów. Ponieważ nigdy nie podnosisz zdarzenia, pole to marnuje tylko pamięć.

+0

Dzięki Slaks, zadziałało. –

+1

Rozważę wdrożenie zdarzenia przy użyciu * implementacji jawnego interfejsu *, więc wydarzenie jest ukryte, gdy rzeczywisty typ implementacji jest używany bezpośrednio. –

Powiązane problemy