Partilhar via


CA2223: Os membros devem diferir por tipo de retorno de mais de

TypeName

MembersShouldDifferByMoreThanReturnType

CheckId

CA2223

<strong>Categoria</strong>

Microsoft.Usage

Alteração significativa

Quebrando

Causa

Dois membros do públicos ou protegidos com assinaturas que são idênticas exceto para o tipo de retorno.

Descrição da regra

Embora o common language runtime permite o uso de tipos de retorno para diferenciar entre membros idênticos, esse recurso não está no Common Language Specification, nem é um recurso comum do.NET linguagens de programação. Quando membros diferem somente por tipo de retorno, os desenvolvedores e ferramentas de desenvolvimento talvez não corretamente distinção entre eles.

Como corrigir violações

Para corrigir uma violação desta regra, altere o design dos membros, para que eles sejam exclusivos com base apenas em seus nomes e tipos de parâmetro ou não expõem os membros.

Quando suprimir avisos

Não suprimir um aviso da regra.

Exemplo

Na Microsoft intermediate language (MSIL), o exemplo a seguir mostra um tipo que viole essa regra. Observe que essa regra não pode ser violada usando C# ou 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