CA1048: Non dichiarare membri virtuali nei tipi sealed
TypeName |
DoNotDeclareVirtualMembersInSealedTypes |
CheckId |
CA1048 |
Category |
Microsoft.Design |
Breaking Change |
Breaking |
Causa
Un tipo pubblico è sealed e dichiara un metodo che è virtual (Overridable in Visual Basic) e non finale. Questa regola non segnala violazioni per tipi delegati che devono seguire questo modello.
Descrizione della regola
I tipi dichiarano metodi come virtuali in modo che l'ereditarietà di tipi possa eseguire l'override dell'implementazione del metodo virtuale. Per definizione, non è possibile ereditare da un tipo sealed, rendendo un metodo virtuale su un tipo sealed non significativo.
Con i compilatori Visual Basic .NET e C# i tipi non possono violare questa regola.
Come correggere le violazioni
Per correggere una violazione di questa regola, rendere il metodo non virtuale oppure rendere il tipo ereditabile.
Esclusione di avvisi
Non escludere un avviso da questa regola. Se si lascia il tipo nello stato corrente è possibile causare problemi di gestione e non ottenere alcun vantaggio.
Esempio
Nell'esempio riportato di seguito viene illustrato un tipo che viola questa regola.
using namespace System;
namespace DesignLibrary
{
public ref class SomeType sealed
{
public:
virtual bool VirtualFunction() { return true; }
};
}