Więc mój profesor przekazał informacje zwrotne na temat projektu, nad którym pracowałem. Zadokował kilka znaków dla tego kodu:
if (comboVendor.SelectedIndex == 0) {
createVendor cv = new createVendor();
cv.ShowDialog();
loadVendors();
}
Jest to w module obsługi „zmiany indeksu” combobox. Jest używany, gdy użytkownik chce utworzyć nowego dostawcę, moja najwyższa opcja (indeks 0, który nigdy się nie zmienia) otwiera okno dialogowe „Utwórz nowego dostawcę”. Tak więc zawartość mojego pola kombi wygląda następująco:
Create New Vendor...
Existing Vendor
Existing Vendor 2
Existing Vendor 3
Jego problem dotyczy kodu pierwszego wiersza:
if (comboVendor.SelectedIndex == 0)
Twierdzi, że 0 powinno być stałe i dlatego właśnie zadokował mi znaki. Twierdzi, że w ogóle nie powinienem używać literałów w moim kodzie.
Chodzi o to, że nie rozumiem, dlaczego chciałbym, aby ten kod był stały. Ten indeks nigdy się nie zmieni, ani nie jest to coś, co trzeba by poprawić. Wydaje się, że marnowaniem pamięci jest utrzymanie pojedynczego 0 w pamięci, która jest używana w bardzo konkretnej sytuacji i nigdy się nie zmienia.
-1w str.indexOf(substr) != -1dla „ strzawiera substr” jest perfekcyjnie uzasadnione. Ale tutaj znaczenie 0 nie jest ani oczywiste (jaki jest związek z tworzeniem nowego dostawcy?), Ani prawdziwie stałe (co, jeśli zmieni się sposób tworzenia nowego dostawcy?).
int.Zerozamiast tego użyć go, aby był szczęśliwy :)