Statische Haltertypen sollten versiegelt sein
TypeName |
StaticHolderTypesShouldBeSealed |
CheckId |
CA1052 |
Kategorie |
Microsoft.Design |
Unterbrechende Änderung |
Breaking |
Ursache
Ein öffentlicher oder geschützter Typ enthält nur statische Member und ist nicht mit dem sealed (C#-Referenz)-Modifzierer (NotInheritable) deklariert.
Regelbeschreibung
Diese Regel setzt voraus, dass ein Typ, der nur statische Member enthält, nicht für die Vererbung konzipiert ist, da der Typ keine Funktionen angibt, die in einem abgeleiteten Typ überschrieben werden können. Ein Typ, der nicht geerbt werden soll, sollte mit dem sealed-Modifizierer gekennzeichnet werden, damit er nicht als Basistyp verwendet werden kann.
Behandlung von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, kennzeichnen Sie den Typ als sealed.
Warnungsausschluss
Schließen Sie eine Warnung dieser Regel nur dann aus, wenn der Typ geerbt werden soll. Die Abwesenheit des sealed-Modifizierers impliziert, dass der Typ als Basistyp verwendet werden kann.
Beispiel
Im folgenden Beispiel wird ein Typ veranschaulicht, der gegen die Regel verstößt.
Imports System
Namespace DesignLibrary
Public Class StaticMembers
Private Shared someField As Integer
Shared Property SomeProperty As Integer
Get
Return someField
End Get
Set
someField = Value
End Set
End Property
Private Sub New()
End Sub
Shared Sub SomeMethod()
End Sub
End Class
End Namespace
using System;
namespace DesignLibrary
{
public class StaticMembers
{
static int someField;
public static int SomeProperty
{
get
{
return someField;
}
set
{
someField = value;
}
}
StaticMembers() {}
public static void SomeMethod() {}
}
}
using namespace System;
namespace DesignLibrary
{
public ref class StaticMembers
{
static int someField;
StaticMembers() {}
public:
static property int SomeProperty
{
int get()
{
return someField;
}
void set(int value)
{
someField = value;
}
}
static void SomeMethod() {}
};
}
Verwandte Regeln
Typen, die statische Member enthalten, sollten keine Konstruktoren aufweisen