Partager via


CA1048 : Ne pas déclarer les membres virtuels dans les types sealed

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; }
    };
}