Sdílet prostřednictvím


CA2223: Členy by se měly lišit o více než návratový typ

Název_typu

MembersShouldDifferByMoreThanReturnType

CheckId

CA2223

Kategorie

Microsoft.Usage

Změnit rozdělení

Rozdělení

Příčina

Dva členy veřejné nebo chráněné mít podpisy, které jsou shodné s výjimkou pro typ návratu.

Popis pravidla

Přestože společný jazykový modul runtime povolí použití návratové typy rozlišení mezi jinak identické členů, tato funkce není ve společné specifikace jazyka ani je jeho běžné funkce.NET programovacích jazyků.Když členové liší pouze návratový typ, vývojáři a nástroje pro vývoj pravděpodobně není rozlišovat správně.

Jak opravit porušení

Vyřešit porušení tohoto pravidla změňte návrh členů jsou jedinečné založené pouze na jejich názvy a typy parametrů nebo členy, neuvádějí.

Při potlačení upozornění

Nepotlačovat upozornění od tohoto pravidla.

Příklad

Následující příklad v Microsoft zprostředkující jazyk (MSIL) ukazuje typ, který poruší toto pravidlo.Všimněte si, že toto pravidlo nelze porušila pomocí C# nebo Visual Basic.NET.

.namespace UsageLibrary
{
  .class public auto ansi beforefieldinit ReturnTypeTest
         extends [mscorlib]System.Object
  {
    .method public hidebysig instance int32
            AMethod(int32 x) cil managed
    {
      // Code size       6 (0x6)
      .maxstack  1
      .locals init (int32 V_0)
      IL_0000:  ldc.i4.0
      IL_0001:  stloc.0
      IL_0002:  br.s       IL_0004

      IL_0004:  ldloc.0
      IL_0005:  ret
    } // end of method ReturnTypeTest::AMethod

    .method public hidebysig instance string
            AMethod(int32 x) cil managed
    {
      // Code size       10 (0xa)
      .maxstack  1
      .locals init (string V_0)
      IL_0000:  ldstr      "test"
      IL_0005:  stloc.0
      IL_0006:  br.s       IL_0008

      IL_0008:  ldloc.0
      IL_0009:  ret
    } // end of method ReturnTypeTest::AMethod

    .method public hidebysig specialname rtspecialname
            instance void  .ctor() cil managed
    {
      // Code size       7 (0x7)
      .maxstack  1
      IL_0000:  ldarg.0
      IL_0001:  call       instance void [mscorlib]System.Object::.ctor()
      IL_0006:  ret
    } // end of method ReturnTypeTest::.ctor

  } // end of class ReturnTypeTest

} // end of namespace UsageLibrary