프로그래밍/(도서)C#코딩의기술-실전

[C#] 코딩의기술(실전편) - 2.3 Format 메서드

Victory_HA 2022. 3. 31. 22:28

1.인수의 불일치로 발생하는 예외

  • 다음 예제코드를 봅시다.
  • 서식 지정 문자열에서 사용하는 인수의 개수와 실제 인수의 개수가 일치하는지는 자동으로 확인하지 않습니다.
    • 컴파일 오류는 발생하지 않지만 컴파일 시 예외가 발생합니다.
  • 서식 지정은 {0}~{9} 까지 10개가 있지만, 인수에 지정한 변수는 9개 이므로 예외 발생합니다.
static void Main(string[] args)
{
    var a = "A";
    var b = "B";
    var c = "C";
    var d = "D";
    var e = "E";
    var f = "F";
    var g = "G";
    var h = "H";
    var i = "I";
    var j = "J";
    Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j);

}

실행결과

  • 다음과 같은 코드 수정으로 예외를 없앨 수 있습니다.

코드 수정

Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j);      //예외가 발생하는 코드

Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, i, j);   //수정 된 코드

2.단순 문자열 연결

  • 코드 수정부분처럼 서식을 변경한다고 해도 본질적인 문제는 해결할 수 없습니다.
  • 문자열 연결이 목적이라면 다음과 같이 수정하는 것이 좋은 방법입니다.
  • 다음과 같이 수정하면 서식 지정 개수와, 인수의 변수 개수를 맞출 필요가 없어집니다.

코드 수정

Console.WriteLine("{0}{1}{2}{3}{4}{5}{6}{7}{8}{9}", a, b, c, d, e, f, g, h, j);      //예외가 발생하는 코드

Console.WriteLine(a + b + c + d + e + f + g + h + i + j);      //수정 된 코드

3. 정리

  • 서식 지정을 사용해야 한다면, 서식 지정 개수와 인수에 지정한 변수의 개수를 잘 비교하는 수밖에 없습니다.
  • 단순히 문자열 연결은 한다면 2.단순 문자열 연결의 코드 수정부분과 같이 초기화해주는 것도 좋은 방법입니다.