CA2223: メンバーは、戻り値の型以外にも異なる点がなければなりません
TypeName |
MembersShouldDifferByMoreThanReturnType |
CheckId |
CA2223 |
[カテゴリ] |
Microsoft.Usage |
互換性に影響する変更点 |
あり |
原因
2 つのパブリック メンバーまたはプロテクト メンバーのシグネチャが、戻り値の型以外は同一です。
規則の説明
共通言語ランタイムでは、メンバーの区別に戻り値の型のみを使用することを許可していますが、この機能は共通言語仕様ではなく、.NET プログラミング言語の共通機能でもありません。戻り値の型によってのみメンバーが区別されると、開発者や開発ツールにおいて正しく区別されないことがあります。
違反の修正方法
この規則違反を修正するには、メンバーのデザインを変更し、名前とパラメーターの型だけで一意になるようにするか、メンバーを公開しないようにします。
警告を抑制する状況
この規則による警告は抑制しないでください。
使用例
次の Microsoft Intermediate Language (MSIL) の例に、この規則に違反する型を示します。C# または 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