Compartir a través de


CA1048: No declarar miembros virtuales en tipos sealed

TypeName

DoNotDeclareVirtualMembersInSealedTypes

Identificador de comprobación

CA1048

Categoría

Microsoft.Design

Cambio problemático

Problemático

Motivo

Un tipo público es sealed y declara un método que tanto virtual (Overridable en Visual Basic) como no final.Esta regla no crea un informe sobre las infracciones para los tipos de delegado, que deben seguir este modelo.

Descripción de la regla

Los tipos declaran los métodos como virtuales para que los tipos heredados puedan reemplazar la implementación del método virtual.Por definición, no se puede heredar de un tipo sealed, haciendo que un método virtual de un de tipo sealed no tenga sentido.

Los compiladores de Visual Basic .NET y de C# no permiten que los tipos infrinjan esta regla.

Cómo corregir infracciones

Para corregir una infracción de esta regla, marque el método como no virtual o haga que el tipo sea heredable.

Cuándo suprimir advertencias

No suprima las advertencias de esta regla.Si se mantiene el estado actual del tipo puede provocar problemas de mantenimiento y no proporciona ventajas.

Ejemplo

El siguiente ejemplo muestra un tipo que infringe esta regla.

using namespace System;

namespace DesignLibrary
{                        
    public ref class SomeType sealed
    {
    public:
        virtual bool VirtualFunction() { return true; }
    };
}