Udostępnij za pośrednictwem


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 inttypu 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