Convert
- System 네임스페이스에 있는 정적 클래스
- 값 ( 문자열 , 숫자, bool 등 )을 다른 형식으로 변환할 때 사용한다.
- 내부적으로 Parse 같은 메서드를 호출하지만, 더 다양한 자료형 변환을 지원한다.
Parse 와 비슷하게 Convert 라는 기능을 이용해서도 형 변환을 할 수 있다.
string str = "123";
// 문자열을 담을 수 있는 str 변수 선언하고 123 을 저장한다.
int num = Convert.ToInt32(str);
// 정수형을 담을수 있는 변수 num 선언
// Convert 로 str 변수 안에 있는 문자열을 정수로 변환
// 변환한 값을 num 에 저장한다.
Console.WriteLine(num + 1);
// 콘솔에 변수 num 과 1을 더한 값을 출력
// 124
주요 메서드
- Convert.ToInt32(string) → 문자열을 int로 변환
- Convert.ToDouble(string) → 문자열을 double로 변환
- Convert.ToBoolean(string) → 문자열을 bool로 변환
- Convert.ToString(int) → 숫자를 문자열로 변환
float , double 형의 변환
- float 이나 double 형도 마찬가지이다.
- 기존 변환을 위해 int 를 쓰던 곳에 float 또는 double 을 넣으면 같은 방법으로 작동된다.
string toConvert = "2023.5";
// 바꾸고자 하는 문자열
double converted;
// 바꾼 실수형을 저장하는 변수 선언
converted = double.Parse(toConvert);
// double 형에 Parse 를 적용
Console.WriteLine(converted+10.2);
// 출력을 통해 확인
Parse vs Convert
Parse
- 문자열 → 특정 타입으로만 변환 (int.Parse, double.Parse 등)
- 변환 실패 시 예외 발생
Convert
- Parse 보다 기능이 더 많다.
- 더 많은 자료형을 다룬다. ( ToInt32 , ToFloat , ToDouble , ToString 등 )
- 변환 실패 시 예외 발생
- null 을 변환하면 예외가 아니라 0 이나 빈 문자열 반환
string? str = null;
int num = Convert.ToInt32(str);
Console.WriteLine(num); // 0
- null → 0 (숫자 변환일 경우)
- null → 빈 문자열 "" (문자열 변환일 경우)
string str = "abc";
int num = Convert.ToInt32(str);
// FormatException 발생
- 이때는 0으로 바뀌지 않습니다.
정리
- Convert 는 다양한 타입 변환 전용 클래스
- Parse 보다 범용적이고 안전하게 null 처리 가능
- 하지만 변환할수 없는 문자열 ( "abe" → int )은 여전히 예외 발생
- Convert 는 null 처리에는 관대하다.
- 하지만 잘못된 값까지 자동으로 0 으로 바꿔주지는 않는다. → 예외 발생
'⭐C Sharp > 07. 메서드(함수)' 카테고리의 다른 글
| in ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
|---|---|
| out ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
| ref ( 매개변수 키워드 , 참조 전달 ) (0) | 2025.09.28 |
| 함수 ( Function ) (0) | 2025.09.07 |
| 문자열 숫자로 변환하기 (0) | 2025.09.07 |