그래서 교수님은 제가 진행하고있는 프로젝트에 대한 피드백을 제공하고있었습니다. 그는이 코드에 몇 가지 마크를 도킹했습니다.
if (comboVendor.SelectedIndex == 0) {
createVendor cv = new createVendor();
cv.ShowDialog();
loadVendors();
}
콤보 박스 "인덱스 변경"핸들러에 있습니다. 사용자가 새 공급 업체를 만들려고 할 때 사용되는 최상위 옵션 (인덱스 0, 변경되지 않음)은 "새 공급 업체 생성"대화 상자를 엽니 다. 따라서 내 콤보 상자의 내용은 다음과 같습니다.
Create New Vendor...
Existing Vendor
Existing Vendor 2
Existing Vendor 3
그의 문제는 첫 번째 라인 코드입니다.
if (comboVendor.SelectedIndex == 0)
그는 0이 일정해야한다고 주장하고 실제로 그로 인해 마크를 도킹했습니다. 그는 코드에서 리터럴을 전혀 사용해서는 안된다고 주장합니다.
문제는 그 상황에서 해당 코드를 상수로 만들고 싶은 이유를 이해하지 못한다는 것입니다. 그 지수는 절대 바뀌지 않으며 조정해야 할 것이 아닙니다. 매우 구체적인 상황에 사용되며 절대 변경되지 않는 메모리에 단일 0을 유지하는 것은 메모리 낭비처럼 보입니다.
-1에 str.indexOf(substr) != -1대한 것과 같은 것들이 일반적으로 정당화 되는 것은 사실입니다 . 그러나 여기서 0의 의미는 명백하지 않으며 (새로운 공급 업체를 만드는 것과 어떤 관계가 있지 않습니까?) 정확하지도 않습니다 (새로운 공급 업체를 만드는 방법이 바뀌면 어떻게 되나요?). strsubstr
int.Zero대신 그를 행복하게 만들 수 있습니다 :)