Lors d'une mission continue de nettoyage de la base de code dont j'ai hérité via stylecop et fxcop, l'un des avertissements de fxcop était CA1801: Paramètre ' valeur 'de Something.MyProperty.set (chaîne) n'est jamais utilisée. Supprimez le paramètre ou utilisez-le dans le corps de la méthode.Avertissement FXCop CA1801: "Parameter is never used ..." sur une propriété supprimée héritée substituée
Le code qu'il se plaint est:
public class Something : ISomeInterface
public new string MyProperty
{
get
{
throw new InvalidOperationException("MyProperty is not implemented.");
}
set
{
throw new InvalidOperationException("MyProperty is not implemented.");
}
}
Cette propriété est définie dans l'interface, mais dans ce cas n'est pas nécessaire dans la classe dérivée - En dehors de l'utilisation un peu douteuse InvalidOperationException au lieu de NotImplementedException, ce que je crois est commun, je me demande si je devrais juste exclure l'avertissement dans FXCop avec une note expliquant pourquoi?
Je ne vois pas ce que je pourrais faire d'autre en termes de meilleure pratique, pour empêcher l'avertissement dans FXCop, autre que refactoriser cette propriété particulière dans une deuxième interface, puis mettre à jour toutes les autres classes qui utilisent cette interface? Je pense que je viens de répondre à ma propre question? : D
En fait, c'est NotSupportedException qui devrait être utilisé dans ce cas. NotImplementedException est destiné à signaler que le développeur n'a pas encore terminé le code d'une méthode. Voir http://blogs.msdn.com/b/brada/archive/2004/07/29/201354.aspx pour plus de détails. –
Oui, vous avez bien raison là-bas, merci pour cela! –