So vermeiden Sie eine Rekursion von Eigenschaften

Dies traf mich kürzlich bei einem Projekt, an dem ich arbeitete. Die meisten Menschen sind mit der Rekursion von Eigenschaften vertraut:

public int Test 
{
   get { return this.test; }
   set { this.Test = value; }
}
private int test;

Sie haben versehentlich ein T in Großbuchstaben in diesen Setter geschrieben und sich für a geöffnetStackoverflowException. Was noch schlimmer ist, wenn Sie es nicht definiert haben, korrigiert Visual Studio das Gehäuse häufig automatisch auf den ungültigen Status.

Ich habe jedoch in letzter Zeit etwas Ähnliches in einem Konstruktor gemacht:

public TestClass(int test)
{
    this.Test = Test;
}

Leider erhalten Sie hier keine StackOverflowException, jetzt haben Sie einen Programmierfehler. In meinem Fall wurde dieser Wert an einen WebService übergeben, der stattdessen einen Standardwert (der nicht 0 war) verwendete, wodurch ich die Tatsache übersah, dass ich ihn falsch zugewiesen hatte. Integrationstests haben alle bestanden, da dieser Service nicht sagte

"Hey, du hast dieses wirklich wichtige Feld vergessen!"

Welche Schritte kann ich unternehmen, um ein solches Verhalten zu vermeiden? Mir wurde immer davon abgeraten, Variablen wie die folgenden zu definieren, und ich mag sie nicht persönlich, aber ich kann mir keine anderen Optionen vorstellen:

private int _test;
private int mTest;

BEARBEITEN

Gründe, warum der Unterstrich oder das Präfix m normalerweise unerwünscht sind, sind:

LesbarkeitEs ist etwas schwieriger, durch Mitglieder zu scrollen, wenn Sie von Klassen von Drittanbietern erben, da Sie einen Stilmix erhalten.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage