SORU
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ş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • Majestic Casual

    Majestic Cas

    28 NİSAN 2012
  • Mark Halberstadt

    Mark Halbers

    19 ŞUBAT 2010