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
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기