문제

컴파일 시간에 형식 문자열을 확인하는 방법이 있습니까?

예시:

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.
도움이 되었습니까?

해결책

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

  1. 공개 인터페이스를 철저히 테스트하여 문자열이 올바르게 형식화되고 있음을 확신합니다.
  2. 같은 도구를 사용하십시오 resharper 이는 정적 분석을 수행하고 응용 프로그램을 실행하기 전에 이러한 문제에 대해 알려줄 수 있습니다.
  3. 일이 더 나은 3 인용입니다.

다른 팁

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

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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top