CA1710: Bezeichner sollten ein richtiges Suffix aufweisen
TypeName |
IdentifiersShouldHaveCorrectSuffix |
CheckId |
CA1710 |
Kategorie |
Microsoft.Naming |
Unterbrechende Änderung |
Breaking |
Ursache
Ein Bezeichner verfügt nicht über das richtige Suffix.
Regelbeschreibung
Die Namen von Typen, die bestimmte Basistypen erweitern oder bestimmte Schnittstellen implementieren, bzw. von diesen Typen abgeleitete Typen weisen stets ein Suffix auf, das mit dem Basistyp oder der Schnittstelle verknüpft ist.
Durch Benennungskonventionen erhalten Bibliotheken, die auf die Common Language Runtime abzielen, ein einheitliches Erscheinungsbild.Dadurch wird der Lernaufwand für neue Softwarebibliotheken verringert. Zudem wird das Kundenvertrauen dahingehend gestärkt, dass die Bibliothek von einem erfahrenen Entwickler für verwalteten Code erstellt wurde.
In der folgenden Tabelle werden die Basistypen und Schnittstellen aufgeführt, denen Suffixe zugeordnet sind.
Basistyp/Schnittstelle |
Suffix |
---|---|
Attribut |
|
EventArgs |
|
Ausnahme |
|
Collection |
|
Dictionary |
|
Collection |
|
Collection oder Queue |
|
Collection oder Stack |
|
Collection |
|
Dictionary |
|
DataSet |
|
Collection oder DataTable |
|
Stream |
|
Berechtigung |
|
Bedingung |
|
Ein Ereignishandlerdelegat. |
EventHandler |
Für Typen, die ICollection implementieren und bei denen es sich um einen verallgemeinerten Datenstrukturtyp handelt, etwa um ein Wörterbuch, einen Stapel oder eine Warteschlange, sind Namen zulässig, aus denen die beabsichtigte Verwendung des Typs hervorgeht.
Typen, die ICollection implementieren und bei denen es sich um eine Auflistung bestimmter Elemente handelt, haben Namen, die mit dem Wort "Collection" enden.Zum Beispiel hätte eine Auflistung von Queue-Objekten den Namen "QueueCollection".Das Suffix "Collection" signalisiert, dass die Member der Auflistung mithilfe der foreach-Anweisung (For Each in Visual Basic) aufgelistet werden können.
Typen, die IDictionary implementieren, haben Namen, die mit dem Wort "Dictionary" enden, auch wenn der Typ zusätzlich IEnumerable oder ICollection implementiert.Durch die Namenskonventionen für die Suffixe "Collection" und "Dictionary" können die Benutzer zwischen den beiden folgenden Enumerationsmustern unterscheiden.
Typen mit dem Suffix "Collection" weisen folgendes Enumerationsmuster auf:
foreach(SomeType x in SomeCollection) { }
Typen mit dem Suffix "Dictionary" weisen folgendes Enumerationsmuster auf:
foreach(SomeType x in SomeDictionary.Values) { }
Ein DataSet-Objekt besteht aus einer Auflistung von DataTable-Objekten, die sich wiederum u. a. aus Auflistungen von System.Data.DataColumn-Objekten und System.Data.DataRow-Objekten zusammensetzen.Diese Auflistungen implementieren ICollection durch die System.Data.InternalDataCollectionBase-Basisklasse.
Behandeln von Verstößen
Benennen Sie den Typ um, damit er mit dem richtigen Suffix versehen wird.
Wann sollten Warnungen unterdrückt werden?
Eine Warnung zur Verwendung des Suffix "Collection" kann gefahrlos unterdrückt werden, wenn es sich bei dem Typ um eine verallgemeinerte Datenstruktur handelt, die erweitert werden kann oder die einen beliebigen Satz verschiedener Elemente enthält.In diesem Fall ist es unter Umständen sinnvoll, einen Namen zu verwenden, der aussagekräftige Informationen hinsichtlich der Implementierung, Leistung oder anderer Eigenschaften der Datenstruktur enthält (z. B. BinaryTree).Wenn der Typ eine Auflistung eines bestimmten Typs (z. B. StringCollection) darstellt, sollten Sie keine Warnung dieser Regel unterdrücken, da das Suffix angibt, dass der Typ mit einer foreach-Anweisung aufgelistet werden kann.
Unterdrücken Sie bei anderen Suffixen keine Warnung dieser Regel.Dank des Suffix geht die beabsichtigte Verwendung aus dem Typnamen hervor.
Verwandte Regeln
CA1711: Bezeichner sollten kein falsches Suffix aufweisen