Delen via


CA1715: Id's moeten het juiste voorvoegsel hebben

Eigenschappen Weergegeven als
Regel-id CA1715
Titel Id's moeten het juiste voorvoegsel hebben
Categorie Naamgeving
Oplossing is brekend of niet-brekend Fouten veroorzaken - wanneer deze op interfaces wordt geactiveerd.

Niet-brekend- wanneer deze wordt gegenereerd voor algemene typeparameters.
Standaard ingeschakeld in .NET 8 Nee

Oorzaak

De naam van een interface begint niet met een hoofdletter 'I'.

of

De naam van een algemene typeparameter voor een type of methode begint niet met een hoofdletter 'T'.

Deze regel kijkt standaard alleen naar extern zichtbare interfaces, typen en methoden, maar dit kan worden geconfigureerd.

Beschrijving van regel

Standaard beginnen de namen van bepaalde programmeerelementen met een specifiek voorvoegsel.

Interfacenamen moeten beginnen met een hoofdletter 'I' gevolgd door een andere hoofdletter. Deze regel rapporteert schendingen voor interfacenamen, zoals 'MyInterface' en 'IsolatedInterface'.

Algemene parameternamen van het type moeten beginnen met een hoofdletter 'T' en eventueel worden gevolgd door een andere hoofdletter. Deze regel rapporteert schendingen voor algemene parameternamen zoals 'V' en 'Type'.

Naamconventies bieden een gemeenschappelijk uiterlijk voor bibliotheken die gericht zijn op de algemene taalruntime. Dit vermindert de leercurve die vereist is voor nieuwe softwarebibliotheken en verhoogt het vertrouwen van klanten dat de bibliotheek is ontwikkeld door iemand die expertise heeft in het ontwikkelen van beheerde code.

Code configureren om te analyseren

Gebruik de volgende opties om te configureren op welke onderdelen van uw codebase deze regel moet worden uitgevoerd.

U kunt deze opties configureren voor alleen deze regel, voor alle regels waarop deze van toepassing is, of voor alle regels in deze categorie (naamgeving) waarop deze van toepassing is. Zie de configuratieopties voor de codekwaliteitsregel voor meer informatie.

Specifieke API-oppervlakken opnemen

U kunt instellen op welke onderdelen van uw codebase deze regel moet worden uitgevoerd, op basis van hun toegankelijkheid. Als u bijvoorbeeld wilt opgeven dat de regel alleen moet worden uitgevoerd op het niet-openbare API-oppervlak, voegt u het volgende sleutel-waardepaar toe aan een .editorconfig-bestand in uw project:

dotnet_code_quality.CAXXXX.api_surface = private, internal

Parameters voor één tekentype

U kunt configureren of parameters van één tekentype wel of niet van deze regel moeten worden uitgesloten. Als u bijvoorbeeld wilt opgeven dat deze regel geen parameters van één teken mag analyseren, voegt u een van de volgende sleutel-waardeparen toe aan een .editorconfig-bestand in uw project:

# 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

Notitie

Deze regel wordt nooit geactiveerd voor een typeparameter met de naam T, bijvoorbeeld Collection<T>.

Schendingen oplossen

Wijzig de naam van de id zodat deze correct wordt voorafgegaan.

Wanneer waarschuwingen onderdrukken

Een waarschuwing van deze regel niet onderdrukken.

Voorbeeld van interfacenaamgeving

Het volgende codefragment toont een onjuist benoemde interface:

' Violates this rule
Public Interface Book

    ReadOnly Property Title() As String

    Sub Read()

End Interface
// Violation.
public interface Book
{
    string Title
    {
        get;
    }

    void Read();
}

Met het volgende codefragment wordt de vorige schending opgelost door de interface vooraf te laten gaan met 'I':

// 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

Voorbeeld van naamgeving van typeparameters

In het volgende codefragment ziet u een onjuist benoemde parameter voor het algemene type:

' Violates this rule
Public Class Collection(Of Item)

End Class
// Violation.
public class Collection<Item>
{
}

Met het volgende codefragment wordt de vorige schending opgelost door de algemene typeparameter vooraf te laten gaan door 'T':

// 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