Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
| Właściwości | Wartość |
|---|---|
| Identyfikator reguły | CA1715 |
| Tytuł | Identyfikatory powinny mieć poprawny prefiks |
| Kategoria | Nazewnictwo |
| Poprawka łamiąca lub nienaruszająca | Przerwanie — gdy nastąpi uruchomienie interfejsów. Nieprzerywalny — w kontekście użycia parametrów typu ogólnego. |
| Domyślnie włączone na platformie .NET 10 | Nie. |
| Zastosowane języki | C# i Visual Basic |
Przyczyna
Nazwa interfejsu nie zaczyna się od wielkiej litery "I".
— lub —
Nazwa parametru typu ogólnego w typie lub metodzie nie zaczyna się od wielkiej litery "T".
Domyślnie ta reguła analizuje tylko zewnętrznie widoczne interfejsy, typy i metody, ale jest to możliwe do skonfigurowania.
Opis reguły
Zgodnie z konwencją nazwy niektórych elementów programowania zaczynają się od określonego prefiksu.
Nazwy interfejsów powinny zaczynać się od wielkiej litery "I", a następnie innej wielkiej litery. Ta reguła zgłasza naruszenia nazw interfejsów, takich jak "MyInterface" i "IsolatedInterface".
Nazwy parametrów typu ogólnego powinny zaczynać się od wielkiej litery "T", a opcjonalnie mogą być kontynuowane przez inną wielką literę. Ta reguła zgłasza naruszenia ogólnych nazw parametrów typu, takich jak "V" i "Type".
Konwencje nazewnictwa zapewniają spójny format dla bibliotek działających w środowisku uruchomieniowym języka wspólnego. Zmniejsza to krzywą uczenia wymaganą dla nowych bibliotek oprogramowania i zwiększa pewność klienta, że biblioteka została opracowana przez kogoś, kto ma doświadczenie w tworzeniu kodu zarządzanego.
Konfigurowanie kodu do analizowania
Użyj poniższych opcji, aby skonfigurować, na które części bazy kodu ma być stosowana ta reguła.
Można skonfigurować te opcje tylko dla tej reguły, dla wszystkich reguł, do których mają zastosowanie, lub dla wszystkich reguł w tej kategorii (nazewnictwo), do których mają zastosowanie. Aby uzyskać więcej informacji, zobacz Opcje konfiguracji reguły jakości kodu.
Uwzględnij określone powierzchnie interfejsu API
Możesz skonfigurować, na które części bazy kodu ma być stosowana ta reguła, na podstawie ich poziomu dostępu, ustawiając opcję api_surface. Aby na przykład określić, że reguła powinna być uruchamiana tylko na powierzchni niepublicznego interfejsu API, dodaj następującą parę klucz-wartość do pliku editorconfig w projekcie:
dotnet_code_quality.CAXXXX.api_surface = private, internal
Uwaga
Zastąp część XXXXCAXXXX identyfikatorem odpowiedniej reguły.
Parametry typu jednoliterowego
Można skonfigurować, czy z tej reguły mają być wykluczane parametry typu jednoznakowego. Aby na przykład określić, że ta reguła nie powinna analizować parametrów typu jednoznakowego, dodaj jedną z następujących par klucz-wartość do pliku editorconfig w projekcie:
# 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
Uwaga
Ta reguła nigdy nie jest uruchamiana dla parametru typu o nazwie T, na przykład Collection<T>.
Jak naprawić naruszenia
Zmień nazwę identyfikatora, aby był poprawnie poprzedzony.
Kiedy pomijać ostrzeżenia
Nie pomijaj ostrzeżeń dla tej reguły.
Przykład nazewnictwa interfejsu
Poniższy fragment kodu przedstawia niepoprawnie nazwany interfejs:
' Violates this rule
Public Interface Book
ReadOnly Property Title() As String
Sub Read()
End Interface
// Violation.
public interface Book
{
string Title
{
get;
}
void Read();
}
Poniższy fragment kodu naprawia poprzednie naruszenie przez dodanie prefiksu "I" do nazwy interfejsu.
// 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
Przykład nazewnictwa parametrów typu
Poniższy fragment kodu przedstawia niepoprawnie nazwany parametr typu ogólnego:
' Violates this rule
Public Class Collection(Of Item)
End Class
// Violation.
public class Collection<Item>
{
}
Poniższy fragment kodu naprawia poprzednie naruszenie, prefiksując parametr typu ogólnego o wartości "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