HOWTO · Csharp
C#에서 문자열을 부울로 변환하는 방법
이 문서에서는 C#에서 문자열을 부울로 변환하는 방법을 소개합니다. ToBoolean() 메서드와 TryParse() 메서드가 포함됩니다.
이 페이지의 내용
C#에서 텍스트를 Boolean으로 변환하려면 입력이 유효하다고 확실히 알 때 Convert.ToBoolean를 사용하고, 사용자나 신뢰할 수 없는 출처에서 입력을 받을 수 있을 때는 Boolean.TryParse를 사용하세요. 두 메서드 모두 대소문자를 구분하지 않고 앞뒤 공백을 허용하며 true와 false라는 단어를 인식합니다. yes나 1 같은 값은 Boolean 텍스트로 처리하지 않습니다. 예외 없이 변환 실패를 처리해야 한다면 TryParse를 선택하세요.
Convert.ToBoolean와 Boolean.TryParse 중 선택하기
두 메서드는 주로 변환 실패를 알리는 방식이 다릅니다. Convert.ToBoolean는 인식 가능한 텍스트를 bool로 반환하고, 문자열이 null이면 false를 반환하며, 그 외의 null이 아닌 텍스트에는 FormatException을 발생시킵니다. 반면 Boolean.TryParse는 성공 여부를 반환하고 파싱된 값은 out 매개 변수에 저장합니다. null이거나 인식할 수 없는 텍스트에는 false를 반환하며, 파싱에 실패하면 출력 값도 false입니다. 형식이 잘못되었을 수 있는 폼 값, 구성 문자열 또는 기타 입력을 검증할 때는 TryParse를 사용하세요. Convert.ToBoolean는 예외 동작이 적절한 경우에 사용하면 됩니다.
Convert.ToBoolean로 문자열 변환하기
아래 Convert.ToBoolean 오버로드는 문자열 인수 하나를 받아 bool을 반환합니다. 결과는 value에 저장되고, 프로그램은 그 값을 표준 출력에 씁니다.
다음 예제를 실행해 보세요. 코드와 출력은 그대로 유지되므로 표시되는 결과 True는 영어 형식입니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
using System;
class StringToBoolean
{
static void Main()
{
string input = "true";
bool value = Convert.ToBoolean(input);
Console.WriteLine(value);
}
}
입력 문자열이 null이면 변환 결과는 false입니다. 허용되는 Boolean 텍스트가 아닌 null 이외의 문자열을 전달하면 FormatException이 발생합니다. 애플리케이션에서 이런 입력이 들어올 수 있다면 아래의 안전한 파싱 패턴을 사용하거나 예외를 명시적으로 처리하세요.
Boolean.TryParse로 입력을 안전하게 파싱하기
Boolean.TryParse 메서드는 문자열과 out bool을 인수로 받습니다. 반환값은 파싱 성공 여부를 나타내며, out 변수에는 파싱된 값이 저장됩니다. 값을 유효한 입력으로 사용하기 전에 반환값을 확인하세요. 이 예제는 인식 가능한 값을 처리하고 텍스트를 파싱할 수 없는 경우도 알려 줍니다. TryParse는 입력이 null이거나 인식되지 않아도 예외를 발생시키지 않습니다. 예제 코드의 출력 문구는 영어로 표시됩니다.
이 섹션의 코드와 표시되는 레이블 또는 출력은 영어로 유지됩니다.
using System;
class StringToBoolean
{
static void Main()
{
string input = "true";
bool value;
if (Boolean.TryParse(input, out value))
{
Console.WriteLine("Parsed: " + value);
}
else
{
Console.WriteLine("Could not parse the input.");
}
}
}
예를 들어 input을 "yes" 또는 null로 바꾸면 실패 분기로 들어갑니다. 두 경우 모두 TryParse는 false를 반환하고 value를 false로 설정합니다. 따라서 변환 실패가 예상되며 호출자가 입력을 검증하거나, 다시 입력하도록 요청하거나, 대체값을 적용해야 할 때 유용합니다. 파싱 실패와 false를 성공적으로 파싱한 경우는 서로 다르므로 반환값을 확인해 구분하세요. 반환값을 무시하고 value만 살펴보면 두 경우 모두 false로 보입니다. 문서화된 기본값이 있는 설정이라면 else 분기에서 적용하고, 사용자가 입력한 데이터라면 검증 메시지를 표시해 원래 텍스트를 수정하도록 안내하세요.