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