CA1715: Bezeichner sollten ein korrektes Präfix aufweisen.
Eigenschaft | Wert |
---|---|
Regel-ID | CA1715 |
Titel | Bezeichner sollten ein korrektes Präfix aufweisen. |
Kategorie | Benennung |
Fix führt oder führt nicht zur Unterbrechung | Unterbrechung: Beim Auslösen für Schnittstellen Keine Unterbrechung: Beim Auslösen für generische Typparameter |
Standardmäßig in .NET 8 aktiviert | Nein |
Ursache
Der Name einer Schnittstelle beginnt nicht mit dem Großbuchstaben „I“.
Oder
Der Name eines generischen Typparameters für einen Typ oder eine Methode beginnt nicht mit dem Großbuchstaben „T“.
Standardmäßig werden mit dieser Regel nur extern sichtbare Schnittstellen, Typen und Methoden überprüft. Dies ist jedoch konfigurierbar.
Regelbeschreibung
Gemäß der Konvention beginnen die Namen bestimmter Programmierelemente mit einem bestimmten Präfix.
Schnittstellennamen müssen mit dem Großbuchstaben „I“ gefolgt von einem weiteren Großbuchstaben beginnen. Diese Regel meldet Verstöße bei Schnittstellennamen wie „MyInterface“ und „IsolatedInterface“.
Namen generischer Typparameter müssen mit dem Großbuchstaben „T“ beginnen, optional gefolgt von einem weiteren Großbuchstaben. Diese Regel meldet Verstöße bei Namen generischer Typparameter wie „V“ und „Typ“.
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.
Konfigurieren des zu analysierenden Codes
Mit den folgenden Optionen können Sie konfigurieren, für welche Teile Ihrer Codebasis diese Regel ausgeführt werden soll.
Sie können diese Optionen nur für diese Regel, für alle zutreffenden Regeln oder für alle zutreffenden Regeln in dieser Kategorie (Benennung) konfigurieren. Weitere Informationen finden Sie unter Konfigurationsoptionen für die Codequalitätsregel.
Einschließen bestimmter API-Oberflächen
Sie können je nach Zugänglichkeit festlegen, für welche Bestandteile Ihrer Codebasis diese Regel ausgeführt wird. Sie können beispielsweise festlegen, dass die Regel nur für die nicht öffentliche API-Oberfläche ausgeführt werden soll, indem Sie einer EDITORCONFIG-Datei in Ihrem Projekt das folgende Schlüssel-Wert-Paar hinzufügen:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Typparameter mit nur einem Zeichen
Sie können konfigurieren, ob Typparameter mit nur einem Zeichen von dieser Regel ausgeschlossen werden sollen. Wenn Sie beispielsweise angeben möchten, dass diese Regel Typparameter mit nur einem Zeichen nicht analysieren soll, fügen Sie einer EDITORCONFIG-Datei in Ihrem Projekt eines der folgenden Schlüssel-Wert-Paare hinzu:
# Package version 2.9.0 and later
dotnet_code_quality.CA1715.exclude_single_letter_type_parameters = true
# Package version 2.6.3 and earlier
dotnet_code_quality.CA2007.allow_single_letter_type_parameters = true
Hinweis
Diese Regel wird für einen Typparameter mit dem Namen T
, z. B. Collection<T>
, nie ausgelöst.
Behandeln von Verstößen
Benennen Sie den Bezeichner so um, dass er das korrekte Präfix aufweist.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel.
Beispiel für die Benennung einer Schnittstelle
Der folgende Codeausschnitt zeigt eine falsch benannte Schnittstelle:
' Violates this rule
Public Interface Book
ReadOnly Property Title() As String
Sub Read()
End Interface
// Violation.
public interface Book
{
string Title
{
get;
}
void Read();
}
Der folgende Codeausschnitt korrigiert den vorherigen Verstoß, indem der Schnittstelle das Präfix „I“ hinzugefügt wird:
// Fixes the violation by prefixing the interface with 'I'.
public interface IBook
{
string Title
{
get;
}
void Read();
}
' Fixes the violation by prefixing the interface with 'I'
Public Interface IBook
ReadOnly Property Title() As String
Sub Read()
End Interface
Beispiel für die Benennung eines Typparameters
Der folgende Codeausschnitt zeigt einen falsch benannten generischen Typparameter:
' Violates this rule
Public Class Collection(Of Item)
End Class
// Violation.
public class Collection<Item>
{
}
Der folgende Codeausschnitt korrigiert den vorherigen Verstoß, indem dem generischen Typparameter das Präfix „T“ hinzugefügt wird:
// Fixes the violation by prefixing the generic type parameter with 'T'.
public class Collection<TItem>
{
}
' Fixes the violation by prefixing the generic type parameter with 'T'
Public Class Collection(Of TItem)
End Class