Ne pas déclarer les membres virtuels dans les types sealed
Mise à jour : novembre 2007
TypeName |
DoNotDeclareVirtualMembersInSealedTypes |
CheckId |
CA1048 |
Catégorie |
Microsoft.CSharp |
Modification avec rupture |
Oui |
Cause
Un type public est sealed (scellé) et déclare une méthode qui est à la fois virtual (Overridable en Visual Basic) et non finale. Cette règle ne rapporte pas de violations pour les types délégués qui doivent suivre ce schéma.
Description de la règle
Les types déclarent des méthodes comme étant virtuelles afin d'hériter de types en mesure de substituer l'implémentation de la méthode virtuelle. Par définition, vous ne pouvez pas hériter d'un type sealed, et retirer ainsi toute signification à une méthode virtuelle sur un type sealed.
Les compilateurs Visual Basic .NET et C# ne permettent pas aux types de violer cette règle.
Comment corriger les violations
Pour corriger une violation de cette règle, rendez la méthode non virtuelle ou le type héritable.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle. Laisser le type dans son état actuel peut induire des problèmes de maintenance et ne fournit aucun avantage.
Exemple
L'exemple suivant affiche un type qui ne respecte pas cette règle.
using namespace System;
namespace DesignLibrary
{
public ref class SomeType sealed
{
public:
virtual bool VirtualFunction() { return true; }
};
}