(0) exportieren Drucken
Alle erweitern
Erweitern Minimieren
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

CA2223: Member sollten sich durch mehr als nur den Rückgabetyp unterscheiden

TypeName

MembersShouldDifferByMoreThanReturnType

CheckId

CA2223

Kategorie (Category)

Microsoft.Usage

Unterbrechende Änderung

Breaking

Zwei öffentliche oder geschützte Member weisen Signaturen auf, die bis auf den Rückgabetyp identisch sind.

Die Common Language Runtime lässt die Verwendung von Rückgabetypen zu, mit deren Hilfe zwischen anderweitig identischen Membern unterschieden werden kann. Trotzdem ist dieses Feature weder in der Common Language Specification (CLS) enthalten, noch eine gebräuchliche Funktion von .NET-Programmiersprachen. Wenn sich Member nur durch den Rückgabetyp unterscheiden, sind Entwickler und Entwicklungstools möglicherweise nicht in der Lage, sie richtig zu unterscheiden.

Um einen Verstoß gegen diese Regel zu beheben, ändern Sie die Gestaltung der Member so, dass sie ausschließlich aufgrund ihrer Namen und Parametertypen unverwechselbar sind, oder Sie machen die Member nicht verfügbar.

Unterdrücken Sie keine Warnung dieser Regel.

Im folgenden Beispiel (in Microsoft Intermediate Language, MSIL), wird ein Typ veranschaulicht, der gegen diese Regel verstößt. Beachten Sie, dass mit C# oder Visual Basic .NET nicht gegen diese Regel verstoßen werden kann.


.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

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft