CA2223: 멤버는 반환 형식 이외의 것도 달라야 합니다.

항목
RuleId CA2223
범주 Microsoft.Usage
주요 변경 내용 주요 변경

원인

두 public 또는 protected 멤버에는 반환 형식을 제외하고 동일한 시그니처가 포함됩니다.

참고 항목

이 규칙은 더 이상 사용되지 않습니다. 자세한 내용은 사용되지 않는 규칙을 참조하세요.

규칙 설명

공용 언어 런타임에서는 반환 값만 다르고 다른 면에서는 동일한 멤버를 구분할 수 있지만 이 기능은 공용 언어 사양에 해당되지 않으며 .NET 프로그래밍 언어의 공통 기능이 아닙니다. 멤버가 반환 형식만 다른 경우에는 개발자와 개발 도구가 멤버를 올바르게 구분하지 못할 수 있습니다.

위반 문제를 해결하는 방법

이 규칙 위반 문제를 해결하려면 멤버의 이름과 매개 변수 형식만 고유하도록 멤버의 디자인을 변경하거나 멤버를 노출하지 않아야 합니다.

경고를 표시하지 않는 경우

이 규칙에서는 경고를 표시해야 합니다.

예시

다음 예제에서는 MSIL(Microsoft Intermediate Language)에서 이 규칙을 위반하는 형식을 보여 줍니다. C# 또는 Visual Basic을 사용하여 이 규칙을 위반할 수는 없습니다.

.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