CA1715 : Les identificateurs doivent être dotés d'un préfixe correct
Propriété | Value |
---|---|
Identificateur de la règle | CA1715 |
Titre | Les identificateurs doivent être dotés d'un préfixe correct |
Catégorie | Dénomination |
Le correctif est cassant ou non cassant | Cassant - en cas de déclenchement sur des interfaces. Non cassant - en cas de déclenchement sur des paramètres de type générique. |
Activé par défaut dans .NET 8 | Non |
Cause
Le nom d’une interface ne commence pas par un « I » majuscule.
-ou-
Le nom d’un paramètre de type générique sur un type ou une méthode ne commence pas par un « T » majuscule.
Par défaut, cette règle examine uniquement les interfaces, les types et les méthodes visibles de l’extérieur, mais elle est configurable.
Description de la règle
Par convention, les noms de certains éléments de programmation commencent par un préfixe spécifique.
Les noms d’interface doivent commencer par un « I » majuscule suivi d’une autre lettre majuscule. Cette règle signale des violations pour les noms d’interface tels que « MyInterface » et « IsolatedInterface ».
Les noms de paramètres de type générique doivent commencer par un « T » majuscule et éventuellement être suivis d’une autre lettre majuscule. Cette règle signale des violations pour les noms de paramètres de type générique tels que « V » et « Type ».
Les conventions de nommage fournissent une recherche commune pour les bibliothèques qui ciblent le common language runtime. Cette cohérence réduit la courbe d’apprentissage requise pour les nouvelles bibliothèques de logiciels et augmente la confiance des clients en ce qui concerne le développement de la bibliothèque par une personne qui a une expertise dans le développement de code managé.
Configurer le code à analyser
Utilisez l’option suivante pour configurer les parties de votre codebase sur lesquelles exécuter cette règle.
Vous pouvez configurer ces options pour cette règle uniquement, pour toutes les règles auxquelles elles s’appliquent ou pour toutes les règles de cette catégorie (Nommage) auxquelles elles s’appliquent. Pour plus d’informations, consultez Options de configuration des règles de qualité du code.
Inclure des surfaces d’API spécifiques
Vous pouvez configurer les parties de votre codebase sur lesquelles exécuter cette règle, en fonction de leur accessibilité. Par exemple, pour spécifier que la règle doit s’exécuter uniquement sur la surface d’API non publique, ajoutez la paire clé-valeur suivante à un fichier .editorconfig dans votre projet :
dotnet_code_quality.CAXXXX.api_surface = private, internal
Paramètres de type à caractère unique
Vous pouvez configurer l’exclusion ou non des paramètres de type à caractère unique de cette règle. Par exemple, pour spécifier que cette règle ne doit pas analyser les paramètres de type à caractère unique, ajoutez l’une des paires clé-valeur suivantes à un fichier .editorconfig dans votre projet :
# 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
Notes
Cette règle ne se déclenche jamais pour un paramètre de type nommé T
, par exemple Collection<T>
.
Comment corriger les violations
Renommez l’identificateur afin qu’il soit correctement préfixé.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple de nommage d’interface
L’extrait de code suivant montre une interface nommée de manière incorrecte :
' Violates this rule
Public Interface Book
ReadOnly Property Title() As String
Sub Read()
End Interface
// Violation.
public interface Book
{
string Title
{
get;
}
void Read();
}
L’extrait de code suivant corrige la violation précédente en préfixant l’interface avec « 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
Exemple de nommage de paramètre de type
L’extrait de code suivant montre un paramètre de type générique nommé incorrectement :
' Violates this rule
Public Class Collection(Of Item)
End Class
// Violation.
public class Collection<Item>
{
}
L’extrait de code suivant corrige la violation précédente en préfixant le paramètre de type générique avec « 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