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