2010-01-08 8 views
2

컴파일 타임에 형식 문자열을 확인할 수있는 방법이 있습니까?형식 문자열 - 컴파일 시간 검사

예 :

Console.WriteLine("{0} is a really {1} site", "stackoverflow.com", "cool");//this will run 

것은 //이 아니라 하나의 인수가

Console.WriteLine("{0} is a really {1} site", "stackoverflow.com"); 

Exception:"Index (zero based) must be greater than or equal to zero and less than the size of the argument list." 

및 서식 캐릭터 라인 (올바른 형식이 아닌 경우, 즉 "}"를 누락 공급되는 예외를 줄 것이다 이후 1)

Console.WriteLine("{0} is a really {1 site", "stackoverflow.com","cool"); 

Exception: Input string was not in a correct format. 

답변

4

아니요, 여기에 컴파일 시간 확인을 추가 할 수 없습니다. 이것은 리소스 문자열 및 서식 지정 문자열의 단점 중 하나입니다. 문제를 완화하기 위해 몇 가지 작업을 수행 할 수 있습니다.

  1. 문자열이 올바르게 형식화되어 있는지 확인하기 위해 공용 인터페이스를 철저히 단위 테스트하십시오.
  2. ReSharper과 같은 도구를 사용하면 정적 분석을 수행하고 응용 프로그램을 실행하기 전에 이러한 문제를 알 수 있습니다.
  3. 더 나은 것들이 있습니다.
2

아니요, 이렇게 할 방법이 없습니다. 단위 테스트는이 문제를 해결합니다.

2

실제로 컴파일 타임 검사는 아니지만 인수 수가 잘못되었거나 형식 문자열의 형식이 잘못된 경우 ReSharper은 Visual Studio에서 경고 할 수 있습니다.