코드 3-2 대문자화 함수의 초기 구현
public static string Capitalize(string text,
bool everyWord = false) { → 새로 추가한 매개변수
if (text.Length < 2) {
return text;
}
if (!everyWord) { → 첫 문자만 대문자로 바꾸는 경우
return Char.ToUpper(text[0]) + text.Substring(1).ToLower();
}
string[] words = text.Split(' '); for (int i = 0; i < words.Length; i++) { words[i] = Capitalize(words[i]); } return String.Join(" ", words);
→ 동일한 함수를 호출하여 모든 단어를 대문자로 만든다.
}
벌써 복잡해 보인다. 하지만 조금만 참고 들어 봐라. 이에 대한 확신을 가졌으면 한다. 일단 함수의 동작 원리를 바꾸는 것이 가장 간단한 해결책으로 보인다. 매개변수와 if 문을 추가하기만 하면 된다. 이렇게 사소한 모든 변화를 이런 방식으로 처리하는 나쁜 습관(거의 반사적으로 일어나는 나쁜 습관)이 생기게 되고 이로 인해 코드는 엄청나게 복잡해진다.