문자열이 유효한 Boolean으로 인식되지 않습니다. 'System.FormatException' 형식의 예외가 mscorlib.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보: 문자열이 유효한 Boolean으로 인식되지 않습니다.
해당 오류는 불리언으로 파싱하는 과정에서 입력한 문자열이 불리언의 True, 또는 False로 인식하기에 유효하지 않은 경우에발생합니다.
대소문자는 중요하지 않으나, 불리언 값으로 인식이 될 수 있는 문자열을 입력하여야 합니다. 이를 방지 하기 위해 TryParse 메서드를 사용하거나, 예외처리구문으로 관리하여야 합니다.
다음은 유효하지 않은 문자열을 불리언으로 파싱할 때 오류가 발생하는 예제입니다.
void BeomSang()
{
string[] ss = {
"true",
"True", "tRue", "trUe","truE",
"TRue","TrUe","TruE","tRUe","tRuE","trUE",
"TRUe","TRuE", "TrUE","tRUE",
"TRUE"};
Dictionary<string, bool> d = new Dictionary<string, bool>();
foreach (string s in ss)
{
d.Add(s, Boolean.Parse(s));
}
bool b = Boolean.Parse(" ");
}
이를 해결하기 위한 메서드를 안내해 드립니다.
//
// 요약:
// 논리 값의 지정된 문자열 표현을 해당하는 System.Boolean으로 변환하려고 시도합니다. 반환 값은 변환이 성공했는지 아니면 실패했는지를
// 나타냅니다.
//
// 매개 변수:
// value:
// 변환할 값이 들어 있는 문자열입니다.
//
// result:
// 변환이 성공하는 경우 이 메서드에서 반환될 때 true가 value과 같으면 System.Boolean.TrueString가 포함되고, false가
// value과 같으면 System.Boolean.FalseString가 포함됩니다. 변환이 실패한 경우에는 false가 포함됩니다. value가
// null이거나 System.Boolean.TrueString 또는 System.Boolean.FalseString 필드 값과 동일하지 않으면
// 변환에 실패합니다.
//
// 반환 값:
// true가 성공적으로 변환되었으면 value이고, 그렇지 않으면 false입니다.
public static Boolean TryParse(string value, out Boolean result);