Quindi il mio professore stava dando alcuni feedback su un progetto a cui stavo lavorando. Ha ancorato alcuni segni per questo codice:
if (comboVendor.SelectedIndex == 0) {
createVendor cv = new createVendor();
cv.ShowDialog();
loadVendors();
}
Questo è in un gestore "indice modificato" combobox. Viene utilizzato quando l'utente desidera creare un nuovo fornitore, la mia opzione principale (indice 0, che non cambia mai) apre la finestra di dialogo "Crea un nuovo fornitore". Quindi il contenuto della mia casella combinata finisce così:
Create New Vendor...
Existing Vendor
Existing Vendor 2
Existing Vendor 3
Il suo problema è con il codice della prima riga:
if (comboVendor.SelectedIndex == 0)
Afferma che lo 0 dovrebbe essere una costante e in realtà mi ha ancorato dei segni a causa di ciò. Afferma che non dovrei usare letterali nel mio codice.
Il fatto è che non capisco perché vorrei rendere quel codice in quella situazione una costante. Quell'indice non cambierà mai, né è qualcosa che dovresti modificare. Sembra uno spreco di memoria mantenere un singolo 0 in memoria che viene utilizzato per una situazione molto specifica e non cambia mai.
-1
a str.indexOf(substr) != -1
per " str
contiene substr
" è prefectly giustificati. Ma qui, il significato di 0 non è né ovvio (quale è la relazione con la creazione di un nuovo fornitore?) Né veramente costante (cosa succede se cambia il modo di creare un nuovo fornitore?).
int.Zero
invece usarlo per renderlo felice :)