Also gab mein Professor Feedback zu einem Projekt, an dem ich gearbeitet habe. Er hat ein paar Zeichen für diesen Code angedockt:
if (comboVendor.SelectedIndex == 0) {
createVendor cv = new createVendor();
cv.ShowDialog();
loadVendors();
}
Dies ist in einem Combobox "Index geändert" -Handler. Es wird verwendet, wenn der Benutzer einen neuen Lieferanten erstellen möchte. Die Option "Mein Top" (Index 0, der sich nie ändert) öffnet den Dialog "Neuen Lieferanten erstellen". Der Inhalt meines Kombinationsfelds sieht also so aus:
Create New Vendor...
Existing Vendor
Existing Vendor 2
Existing Vendor 3
Sein Problem ist mit dem ersten Zeilencode:
if (comboVendor.SelectedIndex == 0)
Er behauptet, dass die 0 eine Konstante sein sollte, und hat mich deswegen angedockt. Er behauptet, ich sollte überhaupt keine Literale in meinem Code verwenden.
Die Sache ist, ich verstehe nicht, warum ich diesen Code in dieser Situation zu einer Konstanten machen möchte. Dieser Index wird sich niemals ändern, und Sie müssen ihn auch nicht anpassen. Es scheint wie eine Verschwendung von Speicher, eine einzelne 0 im Speicher zu belassen, die für eine bestimmte Situation verwendet wird und sich nie ändert.
-1
in str.indexOf(substr) != -1
für " str
enthält substr
" vollkommen gerechtfertigt sind. Aber hier ist die Bedeutung der 0 weder offensichtlich (in welchem Verhältnis steht sie zum Erstellen eines neuen Anbieters?) Noch wirklich konstant (was ist, wenn sich der Weg zum Erstellen eines neuen Anbieters ändert?).
int.Zero
stattdessen verwenden, um ihn glücklich zu machen :)