Zum Beispiel erhalte ich diese Compiler-Warnung:
Das Ereignis 'Company.SomeControl.SearchClick' wird niemals verwendet.
Aber ich weiß, dass es verwendet wird, weil das Auskommentieren mich wie 20 neue Warnungen vor XAML-Seiten auslöst, die versuchen, dieses Ereignis zu verwenden!
Was gibt? Gibt es einen Trick, um diese Warnung loszuwerden?
Antworten:
Dies scheint eine Warnung 67 zu sein und kann daher unterdrückt werden mit:
Vergessen Sie nicht, es so schnell wie möglich (nach der Ereignisdeklaration) wiederherzustellen mit:
Ich würde jedoch noch einmal überprüfen und stellen Sie sicher , dass Sie erhöhen die Veranstaltung irgendwo, nicht nur abonniert zu. Die Tatsache, dass der Compiler 20 Warnungen und nicht 20 Fehler ausspuckt, wenn Sie das Ereignis auskommentieren, ist ebenfalls verdächtig ...
Es gibt auch einen interessanten Artikel über diese Warnung und speziell darüber, wie sie für Schnittstellen gilt. Es gibt einen guten Vorschlag, wie man mit "unbenutzten" Ereignissen umgeht. Die wichtigen Teile sind:
quelle
Wenn Sie gezwungen sind, ein Ereignis über eine Schnittstelle zu implementieren, das Ihre Implementierung nicht benötigt, können Sie Folgendes tun, um die Warnung zu vermeiden.
quelle
if(OnCompleteOpenEvent != null) OnCompleteOpenEvent();
, "OnCompleteEvent existiert im aktuellen Kontext nicht".Der zweitbeste Weg ist imho, klar zu sagen, dass das Ereignis nicht durch Auslösen einer Ausnahme unterstützt wird, wenn jemand versucht, es zu abonnieren.
Als Variante können Sie auch die Methoden
add
und einfachremove
leer lassen, um Abonnements für das Ereignis stillschweigend zu ignorieren.Die beste Lösung besteht darin, den Code umzugestalten und die Deklaration des Ereignisses nach Möglichkeit an den Implementierer zu senden.
Als letzten Ausweg können Sie die Warnung auch so deaktivieren
quelle
Sie können auch Folgendes tun:
quelle
Dem Compiler ist anscheinend nicht bekannt, dass er im XAML-Code verwendet wird. Versuchen Sie, die Warnung in Ihrer Ereignisdefinition zu unterdrücken.
Stellen Sie außerdem sicher, dass Sie das Ereignis tatsächlich irgendwo auslösen.
quelle
Sie können einzelne Warnungen unterdrücken.
In diesem Fall ist CS0219 die Warnung bezüglich Variablen, die zugewiesen, aber nicht verwendet werden. Sie können entweder das Flag / nowarn: 0219 verwenden oder die Fehlernummer im Eigenschaftenbereich für das Projekt hinzufügen (denken Sie unter "Erstellen" daran, die führende CS zu entfernen). Beachten Sie, dass alle Warnungen dieser Klasse unterdrückt werden .
quelle
Oder Sie können
<NoWarn>67</NoWarn>
Ihrem Projekt hinzufügenquelle