Condividi tramite


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