CA1720: Identyfikatory nie powinny zawierać nazw typów
Właściwości | Wartość |
---|---|
Identyfikator reguły | CA1720 |
Tytuł | Identyfikatory nie powinny zawierać nazw typów |
Kategoria | Nazewnictwo |
Poprawka powodująca niezgodność lub niezgodność | Kluczowa |
Domyślnie włączone na platformie .NET 9 | Nie. |
Przyczyna
Nazwa parametru w elemencie członkowskim zawiera nazwę typu danych.
— lub —
Nazwa elementu członkowskiego zawiera nazwę typu danych specyficznego dla języka.
Domyślnie ta reguła sprawdza tylko widoczne zewnętrznie elementy członkowskie, ale jest to możliwe do skonfigurowania.
Opis reguły
Nazwy parametrów i elementów członkowskich są lepiej używane do przekazywania ich znaczenia niż opisywania ich typu, który ma być dostarczany przez narzędzia programistyczne. W przypadku nazw elementów członkowskich, jeśli należy użyć nazwy typu danych, należy użyć nazwy niezależnej od języka zamiast nazwy specyficznej dla języka. Na przykład zamiast nazwy typu C# użyj nazwy int
typu danych niezależnego od języka, Int32
.
Każdy dyskretny token w nazwie parametru lub elementu członkowskiego jest sprawdzany względem następujących nazw typów danych specyficznych dla języka w sposób niewrażliwy na wielkość liter:
- Bool
- WChar
- Int8
- UInt8
- Krótkie
- UShort
- Int
- UInt
- Integer
- Liczba całkowita U
- Długi
- ULong
- Bez znaku
- Podpisane
- Liczba zmiennoprzecinkowa
- Float32
- Float64
Ponadto nazwy parametru są również sprawdzane pod kątem następujących nazw typów danych niezależnych od języka w sposób niewrażliwy na wielkość liter:
- Objekt
- Wartość logiczna
- Char
- String
- SByte
- Byte
- UByte
- Int16
- UInt16
- Int32
- UInt32
- Int64
- UInt64
- IntPtr
- Ptr
- Wskaźnik
- UInptr
- UPtr
- UPointer
- Pojedynczy
- Liczba rzeczywista
- Dziesiętne
- Identyfikator GUID
Jak naprawić naruszenia
Jeśli zostanie wyzwolony względem parametru:
Zastąp identyfikator typu danych w nazwie parametru terminem, który lepiej opisuje jego znaczenie lub bardziej ogólny termin, taki jak "wartość".
Jeśli został wyzwolony przeciwko członkowi:
Zastąp identyfikator typu danych specyficzny dla języka w nazwie elementu członkowskiego terminem, który lepiej opisuje jego znaczenie, odpowiednik niezależny od języka lub bardziej ogólny termin, taki jak "wartość".
Kiedy pomijać ostrzeżenia
Okazjonalne użycie parametrów opartych na typach i nazw składowych może być odpowiednie. Jednak w przypadku nowego programowania nie ma znanych scenariuszy, w których należy pominąć ostrzeżenie z tej reguły. W przypadku bibliotek, które zostały wcześniej wysłane, może być konieczne pominięcie ostrzeżenia z tej reguły.
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 CA1720
// The code that's violating the rule is on this line.
#pragma warning restore CA1720
Aby wyłączyć regułę dla pliku, folderu lub projektu, ustaw jego ważność na none
w pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.CA1720.severity = none
Aby uzyskać więcej informacji, zobacz Jak pominąć ostrzeżenia dotyczące analizy kodu.
Konfigurowanie kodu do analizowania
Użyj następującej opcji, aby skonfigurować, które części bazy kodu mają być uruchamiane w tej regule.
Tę opcję można skonfigurować 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