CA1710: Identyfikatory powinny mieć poprawny przyrostek
TypeName |
IdentifiersShouldHaveCorrectSuffix |
CheckId |
CA1710 |
Kategoria |
Microsoft.Naming |
Zmiana kluczowa |
Kluczowa |
Przyczyna
Identyfikator nie ma poprawnego przyrostka.
Opis reguły
Według konwencji, nazwy typów, które rozszerzają niektóre typy podstawowe lub implementują niektóre interfejsy, lub typy pochodzące od tych typów, mają przyrostek, który jest skojarzony z typem podstawowym lub interfejsem.
Konwencje nazewnictwa przewidują wspólny wygląd dla bibliotek docelowych dla środowiska wykonawczego języka wspólnego.Zmniejsza krzywą zdobywania wiedzy, która jest wymagana dla nowych bibliotek oprogramowania i zwiększa ufność klientów w to, że biblioteka został opracowana przez osobę, która ma doświadczenie w rozwijaniu kodu zarządzanego.
Poniższa tablica wylicza typy podstawowe i interfejsy, które mają skojarzone przyrostki.
Typ podstawowy/interfejs |
Przyrostek |
---|---|
Atrybut |
|
EventArgs |
|
Wyjątek |
|
Kolekcja |
|
Słownik |
|
Kolekcja |
|
Kolekcja lub kolejka |
|
Kolekcja lub stos |
|
Kolekcja |
|
Słownik |
|
DataSet |
|
Kolekcja lub element DataTable |
|
Strumień |
|
Uprawnienie |
|
Warunek |
|
Obiekt delegowany obsługi zdarzeń. |
EventHandler |
Typy, które implementują ICollection i są typami uogólnionymi struktury danych, takimi jak słownik, stos lub kolejka, mogą mieć nazwy, które dostarczają istotnych informacji o zamierzonym sposobie użycia tego typu.
Typy, które implementują ICollection i są kolekcjami określonych elementów, mają nazwy zakończone słowem "Collection".Na przykład, kolekcja obiektów Queue miałaby nazwę "QueueCollection".Przyrostek "Collection" oznacza, że elementy członkowskie kolekcji mogą być wyliczone za pomocą instrukcji foreach (For Each w Visual Basic).
Typy, które implementują IDictionary mają nazwy zakończone słowem "Dictionary" nawet jeśli typ również implementuje IEnumerable lub ICollection.Konwencje nazewnictwa przyrostkowego "Collection" i "Dictionary" umożliwiają użytkownikom rozróżnienie dwóch następujących wzorców wyliczeniowych.
Typy z przyrostkiem "Collection" stosują następujący wzorzec wyliczeniowy.
foreach(SomeType x in SomeCollection) { }
Typy z przyrostkiem "Dictionary" stosują następujący wzorzec wyliczeniowy.
foreach(SomeType x in SomeDictionary.Values) { }
Obiekt DataSet składa się z kolekcji obiektów DataTable, które między innymi, składają się z kolekcji obiektów DataColumn i DataRow.Te kolekcje implementują ICollection poprzez klasę bazową InternalDataCollectionBase.
Jak naprawić naruszenia
Zmień nazwę typu na taką, która posiada poprawny termin jako przyrostek.
Kiedy pominąć ostrzeżenia
Można bezpiecznie pominąć ostrzeżenie i użyć przyrostka "Collection" jeśli typ jest uogólnioną strukturą danych, która może zostać rozszerzona lub będzie zawierać dowolny zestaw różnych elementów.W takim przypadku nazwa, która dostarcza pomocnych informacji na temat implementacji, wydajności lub innych cech struktury danych, może mieć sens (na przykład BinaryTree).W przypadkach, gdy typ reprezentuje kolekcję określonego typu (na przykład element StringCollection), nie pomijaj ostrzeżenia dla tej reguły, ponieważ przyrostek wskazuje, że typ może być wyliczany na pomocą instrukcji foreach.
Dla innych przyrostków, nie omijaj ostrzeżenia dla tej reguły.Przyrostek umożliwia ujawnienie zamierzonego sposobu użycia w nazwie typu.
Powiązane reguły
CA1711: Identyfikatory powinny mieć poprawny przyrostek