[C#] 문자열이 유효한 Boolean으로 인식되지 않습니다. 해결하기

문자열이 유효한 Boolean으로 인식되지 않습니다. 'System.FormatException' 형식의 예외가 mscorlib.dll에서 발생했지만 사용자 코드에서 처리되지 않았습니다. 추가 정보: 문자열이 유효한 Boolean으로 인식되지 않습니다.

문자열이 유효한 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);
댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗