Compartilhar via


Os membros devem diferir por tipo de retorno mais de

TypeName

MembersShouldDifferByMoreThanReturnType

CheckId

CA2223

Category (Categoria)

Microsoft.uso

Quebrando alterar

Quebrando

Causa

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

Descrição da regra

Embora o common language tempo de execução permite o uso de tipos de retorno para diferenciar entre membros idênticos, este recurso não está na especificação da linguagem comum e nem um recurso comum de linguagens de programação .NET.Quando membros diferem somente por tipo de retorno, desenvolvedores e ferramentas de desenvolvimento talvez não corretamente distinção entre eles.

Como corrigir violações

Para corrigir uma violação dessa regra, altere o design dos membros para que eles são 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

O exemplo a seguir, na Microsoft intermediate linguagem (MSIL) mostra um tipo que violam essa regra.Observe que essa regra não pode ser violada usando translation from VPE for Csharp 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