Udostępnij za pośrednictwem


CA1711: Identyfikatory powinny mieć poprawny przyrostek

Właściwości Wartość
Identyfikator reguły CA1711
Stanowisko Identyfikatory nie powinny mieć nieprawidłowych sufiksów
Kategoria Nazewnictwo
Poprawka powodująca niezgodność lub niezgodność Kluczowa
Domyślnie włączone na platformie .NET 8 Nie.

Przyczyna

Identyfikator ma niepoprawny sufiks.

Domyślnie ta reguła analizuje tylko widoczne zewnętrznie identyfikatory, ale jest to możliwe do skonfigurowania.

Opis reguły

Zgodnie z konwencją nazwy typów, które rozszerzają określone typy podstawowe lub implementują określone interfejsy lub typy pochodzące z tych typów, powinny kończyć się określonymi sufiksami zarezerwowanymi. Inne nazwy typów nie powinny używać tych zarezerwowanych sufiksów.

W poniższej tabeli wymieniono zastrzeżone sufiksy oraz podstawowe typy i interfejsy, z którymi są skojarzone.

Sufiks Typ/interfejs podstawowy
Atrybut System.Attribute
Kolekcja System.Collections.ICollection

System.Collections.IEnumerable

System.Collections.Queue

System.Collections.Stack

System.Collections.Generic.ICollection<T>

System.Data.DataSet

System.Data.DataTable
Słownik System.Collections.IDictionary

System.Collections.Generic.IDictionary<TKey,TValue>
Eventargs System.EventArgs
Eventhandler Delegat programu obsługi zdarzeń
Wyjątek System.Exception
Uprawnienie System.Security.IPermission
Kolejka System.Collections.Queue
Stos System.Collections.Stack
Stream System.IO.Stream

Ponadto nie należy używać następujących sufiksów:

  • Delegate
  • Enum
  • Impl (użyj Core zamiast tego)
  • Ex lub podobny sufiks, aby odróżnić go od starszej wersji tego samego typu
  • Flag lub Flags dla typów wyliczenia

Konwencje nazewnictwa zapewniają wspólny wygląd bibliotek przeznaczonych dla środowiska uruchomieniowego 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. Aby uzyskać więcej informacji, zobacz Wytyczne dotyczące nazewnictwa: Klasy, struktury i interfejsy.

Jak naprawić naruszenia

Usuń sufiks z nazwy typu.

Kiedy pomijać ostrzeżenia

Nie pomijaj ostrzeżenia z tej reguły, chyba że sufiks ma jednoznaczne znaczenie w domenie aplikacji.

Pomijanie ostrzeżenia

Jeśli chcesz po prostu pominąć pojedyncze naruszenie, dodaj dyrektywy preprocesora do pliku źródłowego, aby wyłączyć, a następnie ponownie włączyć regułę.

#pragma warning disable CA1711
// The code that's violating the rule is on this line.
#pragma warning restore CA1711

Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none w pliku konfiguracji.

[*.{cs,vb}]
dotnet_diagnostic.CA1711.severity = none

Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.

Konfigurowanie kodu do analizowania

Użyj poniższych opcji, aby skonfigurować, które części bazy kodu mają być uruchamiane w tej regule.

Możesz skonfigurować te opcje tylko dla tej reguły, dla wszystkich reguł, do których ma ona zastosowanie, lub dla wszystkich reguł w tej kategorii (nazewnictwo), których dotyczy. 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órych częściach bazy kodu ma być uruchamiana ta reguła, na podstawie ich ułatwień dostępu. 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

Zezwalaj na sufiksy

Listę dozwolonych sufiksów można skonfigurować z każdym sufiksem rozdzielanym znakiem potoku ("|"). Aby na przykład określić, że reguła nie powinna być uruchamiana względem sufiksów Flag i Flags, dodaj następującą parę klucz-wartość do pliku editorconfig w projekcie:

dotnet_code_quality.ca1711.allowed_suffixes = Flag|Flags

Zobacz też