6 Kasım 2008, PERŞEMBE
&; Yuvalama azaltmak için deyimi " eğer ters "
Benim kod ReSharper çalıştırdığımda örneğin:
if (some condition)
{
Some code...
}
ReSharper bana yukarıdaki uyarı (""yuvalama azaltmak için deyim) ve aşağıdaki düzeltme önerdi: . Ters çevir verdi
if (!some condition) return;
Some code...
Bunu daha iyi anlamak istiyorum. Ben her zaman düşündüm "" bir yöntem sorunlu, biraz gibi ortasında"". goto return
CEVAP
6 Kasım 2008, PERŞEMBE
Yöntem ortasında bir dönüş ille de kötü değil. Eğer kod amacı daha net ediyorsa hemen geri dönmek için daha iyi olabilir. Örneğin:
double getPayAmount() {
double result;
if (_isDead) result = deadAmount();
else {
if (_isSeparated) result = separatedAmount();
else {
if (_isRetired) result = retiredAmount();
else result = normalPayAmount();
};
}
return result;
};
Eğer _isDead
doğruysa, bu durumda, hemen yöntemi çıkabiliriz. Bu yapı için böylesi daha iyi yerine olabilir:
double getPayAmount() {
if (_isDead) return deadAmount();
if (_isSeparated) return separatedAmount();
if (_isRetired) return retiredAmount();
return normalPayAmount();
};
refactoring catalog Bu kod topladım. Bu özel düzenleme denir: Yerine Koşullu Koruma Maddeleri ile iç İçe.
Bunu Paylaş:
İçin Python deyimi switch yedek?...
's "ile" deyimi JavaScr...
Deyimi, belirli alanlarda çiftleri bul...
Python "ile" deyimi için tas...
Nasıl Node.js zaman uyumsuz fonksiyonl...