115 votes

Comment me débarrasser des avertissements du compilateur "[un événement] jamais utilisé" dans Visual Studio?

Par exemple, je reçois cet avertissement du compilateur, "

L'événement 'Company.SomeControl.SearchClick' n'est jamais utilisé.

Mais je sais que c'est utilisé parce que commenter me jette comme 20 nouveaux avertissements de pages XAML qui essayent d'utiliser cet événement!

Ce qui donne? Y at-il une astuce pour se débarrasser de cet avertissement?

187voto

lc. Points 50297

Cela semble être en alerte 67 et peut donc être supprimé avec:

#pragma warning disable 67

N'oubliez pas de les restaurer dès que possible (après l'événement de la déclaration):

#pragma warning restore 67


Cependant, j'aimerais vérifier de nouveau et assurez-vous que vous êtes à la levée de l'événement, quelque part, pas juste l'abonnement . Le fait que le compilateur crache 20 avertissements et pas plus de 20 erreurs lorsque vous commenter l'événement est aussi suspecte...

Il y a aussi un article intéressant à propos de cet avertissement et précisément comment il s'applique aux interfaces; il y a une bonne suggestion sur la façon de traiter avec des "non utilisé" des événements.

94voto

Adam Mills Points 1645

Si vous êtes obligé d'implémenter un événement à partir d'une interface, votre implémentation n'en a pas besoin, vous pouvez procéder comme suit pour éviter l'avertissement.

 public event EventHandler CanExecuteChanged { add{} remove{} }
 

21voto

vidstige Points 4541

La deuxième meilleure façon est à mon humble avis indique clairement que l'événement n'est pas pris en charge par la levée d'une exception si quelqu'un essaie de vous y inscrire.

public event RoutedEventHandler SearchClick
{
    add { throw new NotSupportedException(); }
    remove { }
}

Une variante de cette vous pouvez aussi laisser de l' add et remove méthodes vide à ignorer en silence des abonnements sur l'événement.

La meilleure solution est de refactoriser le code peut-être tirer la déclaration de l'événement à l'implémenteur si possible.

En dernier recours vous pouvez également désactiver l'avertissement comme

#pragma warning disable 67
public event RoutedEventHandler SearchClick;
#pragma warning restore 67

1voto

SLaks Points 391154

Le compilateur n'est apparemment pas au courant de son utilisation dans le code XAML. Essayez de supprimer l'avertissement dans la définition de votre événement.

En outre, assurez-vous que vous organisez réellement l'événement quelque part.

0voto

Simon Points 11945

Ou vous pouvez ajouter <NoWarn>67</NoWarn> à votre projet

 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  ...
  <NoWarn>67</NoWarn>
</PropertyGroup>
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X