Sdílet prostřednictvím


CA1048: Nedeklarujte virtuální členy v zapečetěných typech

TypeName

DoNotDeclareVirtualMembersInSealedTypes

CheckId

CA1048

Kategorie

Microsoft.Design

Narušující změna

Narušující

Příčina

Veřejný typ je zapečetěn a deklaruje metodu, která je virtual (Overridable v jazyce Visual Basic) a není konečná.Toto pravidlo nehlásí porušení typů delegáta, které musí být definovány podle tohoto vzoru.

Popis pravidla

Typy deklarují metody jako virtuální, aby odvozující typy mohly přepsat implementaci virtuálních metod.Podle definice nelze odvodit od zapečetěného typu, což dělá virtuální metodu uzavřeného typu bezvýznamnou.

Kompilátory jazyků Visual Basic .NET a C# neumožňují typům toto pravidlo porušit.

Jak vyřešit porušení

Chcete-li opravit porušení tohoto pravidla, nastavte metodu jako nevirtuální nebo typ nastavte jako odvoditelný.

Kdy potlačit upozornění

Nepotlačujte upozornění na toto pravidlo.Zachování typu v aktuálním stavu může způsobit problémy při udržování a neposkytuje žádné výhody.

Příklad

Následující příklad ukazuje typ, který porušuje toto pravidlo.

using namespace System;

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