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