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