2012-07-11 2 views
2

중첩 된 if 문을 사용하는 메서드가 있으므로 동일한 논리를 작성하는 더 좋은 방법이 있는지 알고 싶습니다. 내가 좋아하는 것 예를 들어일부 중첩 된 if 문을 다시 작성하는 옵션

피 제거를 두 번

_typologyRepository.Update(typology); 
_typologyRepository.Save(); 

당신이 올바른 방향으로 나를 지적 수 있을까요? 감사합니다

public void Update(Typology typology, string nameOriginalValue) 
    { 
     if (typology.Name == nameOriginalValue) 
     { 
      _typologyRepository.Update(typology); 
      _typologyRepository.Save(); 
     } 
     else 
     { 
      if (IsUniqueName(typology.Name)) 
      { 
       _typologyRepository.Update(typology); 
       _typologyRepository.Save(); 
      } 
      else 
       _validatonDictionary.AddError("Name", errorMessageNameUnique); 
     } 
    } 
+4

은 코드 리뷰에 속합니다. –

+0

논리 연산자가 필요합니다. http://msdn.microsoft.com/en-us/library/6a71f45d(v=vs.71).aspx – asawyer

+0

코드 검토? 태그로 추가할까요? – GibboK

답변

7
if (typology.Name == nameOriginalValue || IsUniqueName(typology.Name)) 
{ 
    _typologyRepository.Update(typology); 
    _typologyRepository.Save(); 
} 
else 
{ 
    _validatonDictionary.AddError("Name", errorMessageNameUnique); 
} 
1

RedFilter의 답변이 작성하는 방법입니다. 그래도 코드에 대한 또 다른 메모는 다음과 같습니다.

일반적으로 사람들이/elses를 계단식으로 사용하면 모든 들여 쓰기 수준을 동일하게 유지합니다. RedFilter의 대답은/elses가 필요하지 않으므로 계단식 연결이 필요 없기 때문에 더 낫지 만, 필요한 경우 대부분의 사람들은 다음과 같이 쓸 것입니다.

+0

감사합니다. 샘이 대답에 감사 드리며, 정말 감사드립니다. – GibboK

관련 문제