CA1715 : Les identificateurs doivent être dotés d'un préfixe correct
TypeName |
IdentifiersShouldHaveCorrectPrefix |
CheckId |
CA1715 |
Catégorie |
Microsoft.Naming |
Modification avec rupture |
Avec rupture - lorsque déclenchée sur des interfaces. Sans rupture - lorsque déclenchée sur des paramètres de type générique. |
Cause
Le nom d'une interface visible à l'extérieur 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 extérieurement visible ne commence pas par un 'T' majuscule.
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'interfaces doivent commencer par un "I" majuscule suivi d'une autre lettre majuscule. Cette règle rapporte des violations pour les noms d'interfaces tels que 'MyInterface' et 'IsolatedInterface'.
Les noms de paramètre de type générique doivent commencer par un 'T' majuscule, suivi éventuellement d'une autre lettre majuscule. Cette règle rapporte les violations pour les noms de paramètres de type générique, tels que ''V' et 'Type'.
Les conventions d'affectation des noms confèrent un aspect commun aux bibliothèques qui ciblent le Common Language Runtime. Elles réduisent ainsi la durée de l'apprentissage requis par les nouvelles bibliothèques de logiciels et confirment au client que la bibliothèque a été développée par une personne compétente en matière de développement de code managé.
Comment corriger les violations
Renommez l'identificateur de sorte que son préfixe soit correct.
Quand supprimer les avertissements
Ne supprimez aucun avertissement de cette règle.
Exemple
L'exemple suivant présente une interface incorrectement nommée.
Imports System
Namespace Samples
Public Interface Book ' Violates this rule
ReadOnly Property Title() As String
Sub Read()
End Interface
End Namespace
using System;
namespace Samples
{
public interface Book // Violates this rule
{
string Title
{
get;
}
void Read();
}
}
using namespace System;
namespace Samples
{
public interface class Book // Violates this rule
{
property String^ Title
{
String^ get();
}
void Read();
};
}
L'exemple suivant résout la violation précédente en faisant précéder le nom de l'interface par un 'I'.
Imports System
Namespace Samples
Public Interface IBook ' Fixes the violation by prefixing the interface with 'I'
ReadOnly Property Title() As String
Sub Read()
End Interface
End Namespace
using System;
namespace Samples
{
public interface IBook // Fixes the violation by prefixing the interface with 'I'
{
string Title
{
get;
}
void Read();
}
}
using namespace System;
namespace Samples
{
public interface class IBook // Fixes the violation by prefixing the interface with 'I'
{
property String^ Title
{
String^ get();
}
void Read();
};
}
L'exemple suivant présente un paramètre de type générique incorrectement nommé.
Imports System
Namespace Samples
Public Class Collection(Of Item) ' Violates this rule
End Class
End Namespace
using System;
namespace Samples
{
public class Collection<Item> // Violates this rule
{
}
}
using namespace System;
namespace Samples
{
generic <typename Item> // Violates this rule
public ref class Collection
{
};
}
L'exemple suivant résout la violation précédente en faisant précéder le paramètre de type générique par un 'T'.
Imports System
Namespace Samples
Public Class Collection(Of TItem) ' Fixes the violation by prefixing the generic type parameter with 'T'
End Class
End Namespace
using System;
namespace Samples
{
public class Collection<TItem> // Fixes the violation by prefixing the generic type parameter with 'T'
{
}
}
using namespace System;
namespace Samples
{
generic <typename TItem> // Fixes the violation by prefixing the generic type parameter with 'T'
public ref class Collection
{
};
}
Règles connexes
CA1722 : Les identificateurs ne doivent pas porter un préfixe incorrect