CA1711: Identyfikatory powinny mieć poprawny przyrostek
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1711 |
Tytuł | Identyfikatory nie powinny mieć nieprawidłowych sufiksów |
Kategoria | Nazewnictwo |
Poprawka powodująca niezgodność lub niezgodność | Kluczowa |
Domyślnie włączone na platformie .NET 9 | 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.
Przyrostek | 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 |
Program obsługi zdarzeń | Delegat programu obsługi zdarzeń |
Wyjątek | System.Exception |
Uprawnienie | System.Security.IPermission |
Queue | 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żyjCore
zamiast tego)Ex
lub podobny sufiks, aby odróżnić go od starszej wersji tego samego typuFlag
lubFlags
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