Sdílet prostřednictvím


CA1500: Názvy proměnných by neměly odpovídat názvům polí

Název_typu

VariableNamesShouldNotMatchFieldNames

CheckId

CA1500

Kategorie

Microsoft.Maintainability

Změnit rozdělení

Vyvolání na parametr, který má stejný název jako pole:

  • Bez konce - Pokud pole a metoda, která deklaruje parametr vidět mimo sestavení, bez ohledu na změnu provedete.

  • Rozdělení - li změnit název pole a vidět mimo sestavení.

  • Rozdělení - li změnit název parametru a metodu, která prohlašuje, že je lze vidět mimo sestavení.

Vyvolání na místní proměnnou, která má stejný název jako pole:

  • Bez konce - Pokud pole vidět mimo sestavení bez ohledu na změny, které provedete.

  • Bez konce - Pokud změníte název místní proměnné a neměňte název pole.

  • Rozdělení - li změnit název pole a lze jej zobrazit mimo sestavení.

Příčina

Metody instance deklaruje parametr nebo lokální proměnné, jejichž název odpovídá deklarující typ pole instance.Chcete-li místní proměnné, které porušují pravidla, musí být sestavena testované sestavení pomocí ladicích informací a přidružený program soubor databáze (PDB) musí být k dispozici.

Popis pravidla

Pokud název pole instance odpovídá parametr nebo místní název proměnné, pole instance je přístupný this (Me v Visual Basic) klíčové slovo při uvnitř těla metody.Při zachování kódu je snadné zapomenout tento rozdíl a předpokládá, že parametr nebo místní proměnná odkazuje na pole instance, což vede k chybám.To platí zejména pro subjekty metodu zdlouhavé.

Jak opravit porušení

Chcete-li opravit porušení tohoto pravidla parametru nebo proměnné nebo pole přejmenujte.

Při potlačení upozornění

Nepotlačovat upozornění od tohoto pravidla.

Příklad

Následující příklad ukazuje dva porušení pravidla.

Imports System

Namespace MaintainabilityLibrary

   Class MatchingNames

      Dim someField As Integer 

      Sub SomeMethodOne(someField As Integer)
      End Sub 

      Sub SomeMethodTwo()
         Dim someField As Integer 
      End Sub 

   End Class 

End Namespace
using System;

namespace MaintainabilityLibrary
{
   class MatchingNames
   {
      int someField;

      void SomeMethodOne(int someField) {}

      void SomeMethodTwo()
      {
         int someField;
      }
   }
}