CA1715: Identyfikatory powinny mieć odpowiedni prefiks
TypeName |
IdentifiersShouldHaveCorrectPrefix |
CheckId |
CA1715 |
Kategoria |
Microsoft.Naming |
Zmiana kluczowa |
Kluczowa - gdy wywoływana na interfejsach. Niekluczowa - gdy wywołana na parametrach typu generycznego. |
Przyczyna
Nazwa interfejsu, który jest widoczny z zewnątrz, nie zaczyna się z wielkiej litery 'I'.
-lub-
Nazwa parametru typu generycznego, widocznego na zewnątrz typu lub metody, nie zaczyna się od litery 'T'.
Opis reguły
Według konwencji, nazwy niektórych elementów programowania zaczynają się określonym prefiksem.
Nazwy interfejsów powinny rozpoczynać się wielką literą 'I', po której następuje inna wielka litera.Ta reguła zgłasza naruszenia nazw interfejsów takich jak 'MyInterface' i 'IsolatedInterface'.
Nazwy parametrów typu generycznego powinny rozpoczynać się od wielkiej litery 'T' i opcjonalnie po niej mogą następować inne wielkie litery.Ta reguła zgłasza naruszenia nazw parametrów typu generycznego takich jak 'V' i 'Typ'.
Konwencje nazewnictwa przewidują wspólny wygląd dla bibliotek docelowych dla środowiska wykonawczego języka wspólnego.Zmniejsza to krzywą zdobywania wiedzy, która jest wymagana dla nowych bibliotek oprogramowania i zwiększa ufność klientów w to, że biblioteka została opracowana przez osobę, która ma doświadczenie w rozwijaniu kodu zarządzanego.
Jak naprawić naruszenia
Zmienić identyfikator, tak aby posiadał poprawny prefiks.
Kiedy pominąć ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.
Przykład
Poniższy przykład pokazuje niepoprawnie nazwany interfejs.
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();
};
}
Poniższy przykład rozwiązuje poprzednie naruszenie dodając prefiks interfejsu '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();
};
}
Poniższy przykład pokazuje niepoprawnie nazwany parametr typu generycznego.
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
{
};
}
Poniższy przykład rozwiązuje poprzednie naruszenie dodając prefiks parametru typu generycznego '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
{
};
}
Powiązane reguły
CA1722: Identyfikatory nie powinien mieć niepoprawny prefiks